Pagini recente » Cod sursa (job #2668927) | Cod sursa (job #1541692) | Cod sursa (job #98245) | Cod sursa (job #1557989) | Cod sursa (job #196576)
Cod sursa(job #196576)
// http://infoarena.ro/problema/cautbin
#include <cstdio>
const int NMAX = 100005;
int n, m;
int A[NMAX];
int main() {
freopen("cautbin.in", "r", stdin),
freopen("cautbin.out", "w", stdout);
scanf("%d", &n);
int i;
for (i = 0; i < n; ++ i)
scanf("%d", &A[i]);
int type, what, ans, lo, hi, mid;
scanf("%d", &m);
for (i = 0; i < m; ++ i) {
scanf("%d %d", &type, &what);
ans = -1;
lo = 0, hi = n - 1;
while (lo <= hi) {
mid = lo + (hi - lo) / 2;
if (A[mid] < what) {
if (type == 1)
ans = mid;
lo = mid + 1;
} else if (A[mid] > what) {
if (type == 2)
ans = mid;
hi = mid - 1;
} else {
ans = mid;
break;
}
}
printf("%d\n", (ans == -1) ? -1 : ans + 1);
}
return 0;
}