Binary Search
Rank It
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int binarySearch(int A[], int low, int high, int x) {
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (A[mid] < x)
low = mid + 1;
else if (A[mid] > x)
high = mid - 1;
else if (A[mid] == x)
break;
}
return mid;
}
int main() {
int size;
cin >> size;
int A[size];
for (int i = 0; i < size; i++) {
cin >> A[i];
}
sort(A, A + size);
int q;
cin >> q;
while (q--) {
int x, rank;
cin >> x;
rank = binarySearch(A, 0, size - 1, x);
cout << rank + 1 << endl;
}
return 0;
}Last updated