Pagini recente » Cod sursa (job #2336326) | Cod sursa (job #1420394) | Cod sursa (job #2397422) | Cod sursa (job #861365) | Cod sursa (job #364357)
Cod sursa(job #364357)
#include<fstream>
using namespace std;
int a[100001],n,m;
int x,val,i,s;
int main()
{freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
int lg;
for(lg=1;lg<=n;lg<<=1);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
for(;m;m--)
{
scanf("%d %d",&x,&val);
if(x<2){for(i=0,s=lg;s;s>>=1)
if(i+s<=n && a[i+s]<=val)
i+=s;
if(x==0 && a[i]!=val )
printf("-1 \n");
else
printf ("%d \n",i);
}
else
{for(i=n, s=lg;s;s>>=1 )
if(i-s>0 && a[i-s]>=val)
i=i-s;
printf("%d \n" ,i);
}
}
return 0;}