fork download
  1. #include <iostream>
  2. #include "stdio.h"
  3. #include "stdlib.h"
  4. #include <algorithm>
  5. #include <vector>
  6.  
  7. using namespace std;
  8.  
  9. int BinarySearch(vector<int>& A, int x, int low, int high)
  10. {
  11. if(low > high) return -1;
  12. int m = (low + high)/2;
  13. if(x == A[m]) return m;
  14. else if (x < A[m]) BinarySearch(A,x,low,high-1);
  15. else BinarySearch(A,x,low+1,high);
  16. }
  17.  
  18. /*int compare (const void* a, const void* b)
  19. {
  20.   return ( *(float*)a - *(float*)b );
  21. }*/
  22.  
  23.  
  24.  
  25.  
  26. int main()
  27. {
  28. int n;
  29. scanf("%d",&n);
  30. vector<int> A;
  31. int i;
  32. int el;
  33. for(i=0; i<n; i++){ scanf("%d",&el); A.push_back(el);}
  34. sort(A.begin(),A.end());
  35. for(i=0; i<n; i++) printf("%d ",A[i]);
  36. printf("\n");
  37. int m;
  38. int x;
  39. scanf("%d",&m);
  40. for(i=0; i<m; i++)
  41. {
  42. scanf("%d",&x);
  43. printf("%d\n",BinarySearch(A,x,0,n-1));
  44. }
  45. return 0;
  46. }
Success #stdin #stdout 0s 3464KB
stdin
30
13
16
27
25
23
25
16
12
9
1
2
7
20
19
23
16
0
6
22
16
11
8
27
9
2
20
2
13
7
25
15
29
12
12
18
29
27
13
16
1
22
9
3
21
29
14
stdout
0 1 2 2 2 6 7 7 8 9 9 11 12 13 13 16 16 16 16 19 20 20 22 23 23 25 25 25 27 27 
-1
12
12
-1
-1
28
14
15
1
22
10
-1
-1
-1
-1