Pagini recente » Istoria paginii runda/tralala/clasament | Istoria paginii runda/training_round_1/clasament | Cod sursa (job #2332741) | Istoria paginii runda/ah9/clasament | Cod sursa (job #2482231)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
int v[MAXN];
int cb(int l, int r, int x) {
int last = 1;
while (l <= r) {
int med = (l + r) / 2;
if (v[med] <= x) {
last = med;
l = med + 1;
} else {
r = med - 1;
}
}
return last;
}
int main() {
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
int n, m;
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
scanf("%d", &v[i]);
scanf("%d", &m);
for (int i = 1; i <= m; ++i) {
int t, x, last;
scanf("%d%d", &t, &x);
if (t <= 1)
last = cb(1, n, x);
else
last = cb(1, n, x - 1) + 1;
if (t == 0 && v[last] != x)
last = -1;
printf("%d\n", last);
}
return 0;
}