Cod sursa(job #195082)
#include<stdio.h>
long a[100001],x,n,m,i,c;
long cb0(long st,long dr);
long cb1(long st,long dr);
long cb2(long st,long dr);
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%ld",&n);
for(i=1;i<=n;i++)scanf("%ld",&a[i]);
scanf("%ld",&m);
for(;m;m--)
{ scanf("%ld%ld",&c,&x);
if(c==1){printf("%ld",cb1(1,n));continue;}
if(c==2){cb2(1,n);continue;}
cb0(1,n);
}
return 0;
}
long cb0(long st,long dr)
{
long mid;
if(a[st]>x)return -1;
if(a[dr]<x)return -1;
if(dr-st>1)
{ mid=(st+dr)>>1;
if(a[mid]>x)return cb0(st,mid-1);
return cb0(mid,dr);
}
if(a[dr]==x)return dr;
if(a[st]==x)return st;
return -1;
}
long cb1(long st,long dr)
{
return -1;
}
long cb2(long st,long dr)
{
return -1;
}