fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int findright(int arr[], int key, int low, int high);
  5.  
  6. int main() {
  7. int n, arr[200], key;
  8. scanf("%d %d\n", &n, &key);
  9. for (int i = 0; i < n; i++) {
  10. scanf("%d", &arr[i]);
  11. }
  12. int a = findright(arr, key, 1, n - 1);
  13. printf("%d", a);
  14. return 0;
  15. }
  16.  
  17. int findright(int arr[], int key, int low, int high) {
  18. if (low > high) { // anchor stopping recursion
  19. return -1; // indicate that key was not found...
  20. }
  21.  
  22. int mid = (low + high) / 2;
  23. if (arr[mid] == key) {
  24. return mid;
  25. } else if (arr[mid] > key) {
  26. return findright(arr, key, mid + 1, high);
  27. } else {
  28. return findright(arr, key, low, mid - 1);
  29. }
  30. }
  31.  
Success #stdin #stdout 0s 4508KB
stdin
5 2
5 4 3 2 1 
stdout
3