Pagini recente » Cod sursa (job #2961022) | Cod sursa (job #765463) | Cod sursa (job #765358) | Cod sursa (job #2093495) | Cod sursa (job #765385)
Cod sursa(job #765385)
#include<cstdio>
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)
{while(v[i]==y)
i++;
printf("%d\n",i-1);}
else
printf("%d\n",i);
else
{while(v[i]==y)
i--;
printf("%d\n",i+1);}}
return 0;}