Pagini recente » Cod sursa (job #1345870) | Cod sursa (job #723745) | Cod sursa (job #2593128) | Cod sursa (job #2866612) | Cod sursa (job #354469)
Cod sursa(job #354469)
#include <stdio.h>
#define NMax 100005
int N, M, v[NMax], log,t, x, i, lg;
int main()
{
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d", &N);
for (i = 1; i <= N; ++i) scanf("%d", &v[i]);
for (log = 1; log <= N; log <<= 1);
scanf("%d", &M);
for (; M; M--)
{
scanf("%d %d", &t, &x);
if (t < 2)
{
for (lg = log, i = 0; lg; lg >>= 1)
if (i + lg <= N && v[i + lg] <= x) i += lg;
if (!t && v[i] != x) printf("-1\n");
else printf("%d\n", i);
continue;
}
for (lg = log, i = N; lg; lg >>= 1)
if (i - lg > 0 && v[i - lg] >= x) i-= lg;
printf("%d\n", i);
}
return 0;
}