Pagini recente » Cod sursa (job #2817765) | Cod sursa (job #628735) | Cod sursa (job #3195894) | Cod sursa (job #2107724) | Cod sursa (job #1611970)
#include<cstdio>
int v[100001];
int main ()
{freopen ("cautbin.in","r",stdin);
freopen ("cautbin.out","w",stdout);
int n,m,i,c1,c2,x,q,a,s;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&v[i]);
scanf("%d",&m);
for(i=1;i<=m;i++)
{scanf("%d%d",&q,&a);
c1=1;
c2=n;
if(q==0)
{s=-1;
while(c1<=c2)
{x=(c1+c2)/2;
if(v[x]==a)
{s=x;
c1=x+1;
}
else
if(v[x]<a)
c1=x+1;
else
c2=x-1;
}
printf("%d\n",s);
}
else
if(q==1)
{while(c1<=c2)
{x=(c1+c2)/2;
if(v[x]<=a)
{s=x;
c1=x+1;
}
else
c2=x-1;
}
printf("%d\n",s);
}
else
{while(c1<=c2)
{x=(c1+c2)/2;
if(v[x]<a)
c1=x+1;
else
{s=x;
c2=x-1;
}
}
printf("%d\n",s);
}
}
return 0;
}