Pagini recente » Cod sursa (job #1622789) | Cod sursa (job #344258) | Cod sursa (job #1949160) | Cod sursa (job #2717423) | Cod sursa (job #1474228)
#include <cstdio>
using namespace std;
int m,n,x[100010];
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
scanf("%d",&n);
int i,poz;
for(i=1;i<=n;i++) scanf("%d",&x[i]);
scanf("%d",&m);
for(poz=1;poz<=n;poz<<=1);
int tip,nr,lg;
for(;m;--m)
{
scanf("%d%d",&tip,&nr);
if(tip<2)
{
for(i=0,lg=poz;lg;lg>>=1)
if(i+lg<=n && x[i+lg]<=nr)
i+=lg;
if(tip==0 && x[i]!=nr) printf("-1\n");
else printf("%d\n",i);
}
else
{
for(i=n,lg=poz;lg;lg>>=1)
if(i-lg>0 && x[i-lg]>=nr) i-=lg;
printf("%d\n",i);
}
}
fclose(stdin);
fclose(stdout);
return 0;
}