Pagini recente » Cod sursa (job #1968557) | Cod sursa (job #2199510) | Cod sursa (job #657877) | Cod sursa (job #220348) | Cod sursa (job #1871412)
#include <cstdio>
using namespace std;
const int N=100005;
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]);
scanf("%d",&q);
while(q--){
scanf("%d%d",&T,&x);
In=1, Sf=n;
if(T!=2){
while(In<Sf){
Mij=(In+Sf)/2;
if(v[Mij]<=x) In=Mij+1;
else Sf=Mij;
}
if(In==n and v[n]==x){
printf("%d\n",n);
continue;
}
if(T==0){
if(v[In-1]==x) printf("%d\n",In-1);
else 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;
}