#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int x = 4, a[] = {1, 3, 5, 2, 4};
sort(a, a + 5); // перед тем, как применять бинпоиск массив нужно отсортировать
// lower_bound ищет за O(logN) первый элемент a[i] в массиве a : a[i] >= x
int i = lower_bound(a, a + 5, x) - a; // i = 3, a[i] = 4
int j = lower_bound(a, a + 5, 10) - a; // j = 5, a[j] = не определено
int k = lower_bound(a, a + 5, 0) - a; // k = 0, a[k] = 1, что >= 0
printf("i = %d, a[i] = %d, j = %d, k = %d\n", i, a[i], j, k);
return 0;
}