Pagini recente » Cod sursa (job #689460) | Cod sursa (job #1162988) | Cod sursa (job #1807465) | Cod sursa (job #2887534) | Cod sursa (job #1871426)
#include <cstdio>
using namespace std;
const int N=100005, Inf=(1<<31)-1;
int v[N];
int main()
{
freopen("cautbin.in","r",stdin);
freopen("cautbin.out","w",stdout);
int n,q,i,j,In,Sf,Mij,T,x;
scanf("%d",&n);
for(i=1;i<=n;i++) scanf("%d",&v[i]);
v[n+1]=Inf;
scanf("%d",&q);
while(q--){
scanf("%d%d",&T,&x);
In=0, Sf=n+1;
if(T!=2){
while(In<Sf){
Mij=(In+Sf)/2;
if(v[Mij]<=x) In=Mij+1;
else Sf=Mij;
}
if(T==0 and v[In-1]!=x) printf("-1\n");
else printf("%d\n",In-1);
}
else{
while(In<Sf){
Mij=(In+Sf)/2+1;
if(v[Mij]<x) In=Mij;
else Sf=Mij-1;
}
printf("%d\n",In+1);
}
}
return 0;
}