Pagini recente » Cod sursa (job #1724557) | Cod sursa (job #2090867) | Cod sursa (job #862746) | Cod sursa (job #2361496) | Cod sursa (job #307794)
Cod sursa(job #307794)
#include <stdio.h>
#define dim 100100
int n, m, v[dim], logn;
int main()
{
int i, op, x, lg;
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d\n", &n);
for (logn=1; logn<=n; logn<<=1);
for (i=1; i<=n; i++) scanf("%d ", &v[i]);
scanf("%d\n", &m);
for (; m; m--)
{
scanf("%d %d\n", &op, &x);
if (op<2)
{
for (i=0, lg=logn; lg; lg>>=1)
if (i+lg<=n && v[i+lg]<=x)
i+=lg;
if (!op && v[i]!=x) printf("-1\n");
else printf("%d\n", i);
continue;
}
for (i=n, lg=logn; lg; lg>>=1)
if (i-lg>0 && v[i-lg]>=x)
i-=lg;
printf("%d\n", i);
}
return 0;
}