Pagini recente » Cod sursa (job #181720) | Cod sursa (job #236940) | Cod sursa (job #181180) | Cod sursa (job #3220550) | Cod sursa (job #194444)
Cod sursa(job #194444)
#include <cstdio>
int a[100001];
int n, m;
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d\n", &n);
int i,cnt;
for(i=1;i<=n;++i) scanf("%d ", a+i);
scanf("%d\n", &m);
int t, x;
while(m--)
{
scanf("%d %d\n", &t, &x);
if(t==0)
{
for(i=1, cnt=(1<<18); cnt; cnt>>=1)
if(i+cnt<=n)
if(a[i+cnt]<=x)i+=cnt;
if(a[i]==x) printf("%d\n", i);
else printf("-1\n");
}
if(t==1)
{
for(i=1, cnt=(1<<18); cnt; cnt>>=1)
if(i+cnt<=n)
if(a[i+cnt]<=x)i+=cnt;
printf("%d\n", i);
}
if(t==2)
{
for(i=n, cnt=(1<<18); cnt; cnt>>=1)
if(i-cnt>=1)
if(a[i-cnt]>=x)i-=cnt;
printf("%d\n", i);
}
}
return 0;
}