Pagini recente » Cod sursa (job #685128) | Cod sursa (job #2301820)
#include<stdio.h>
int n,m,i,v[100001],x,y,s,l;
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]);
scanf("%d",&m);
for(l=1;l<=n;l<<=1);
while(m--)
{
scanf("%d%d",&x,&y);
for(i=0,s=l;s;s>>=1)
if(i+s<=n&&v[i+s]<=y)
i+=s;
if(!x)
printf("%d\n",v[i]==y?i:-1);
else if(x==1)
if(v[i]==y)
{
for(;v[i]==y;i++);
printf("%d\n",i-1);
}
else
printf("%d\n",i);
else
{
for(;v[i]==y;i--);
printf("%d\n",i+1);
}
}
}