Pagini recente » Cod sursa (job #385341) | Cod sursa (job #1890252) | Cod sursa (job #2305003) | Cod sursa (job #2283563) | Cod sursa (job #2542646)
#include <cstdio>
#include <vector>
using namespace std;
const int NMAX = 100505;
int N, M, arr[NMAX];
int main() {
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d", &N);
for (int i = 1; i <= N; i++) {
scanf("%d", &arr[i]);
}
scanf("%d", &M);
int queryType, x;
for (int queryNo = 0; queryNo < M; queryNo++) {
scanf("%d%d", &queryType, &x);
switch(queryType) {
case 0: {
int posLte = lower_bound(arr + 1, arr + N + 1, x + 1) - arr - 1;
if (posLte > 0 && arr[posLte] == x){
printf("%d\n", posLte);
} else {
printf("-1\n");
}
break;
}
case 1: {
int posLte = lower_bound(arr + 1, arr + N + 1, x + 1) - arr - 1;
printf("%d\n", posLte);
break;
}
case 2: {
int posLte = lower_bound(arr + 1, arr + N + 1, x) - arr;
printf("%d\n", posLte);
break;
}
}
}
return 0;
}