Pagini recente » Cod sursa (job #2007498) | Cod sursa (job #837876) | Cod sursa (job #856891) | Cod sursa (job #451017) | Cod sursa (job #1692352)
#include <cstdio>
#define MAXN 100000
int v[MAXN+2];
int main(){
FILE*fi,*fout;
int n,i,m,rez,pas,t,x;
fi=fopen("cautbin.in" ,"r");
fout=fopen("cautbin.out" ,"w");
fscanf(fi,"%d" ,&n);
for(i=1;i<=n;i++)
fscanf(fi,"%d" ,&v[i]);
fscanf(fi,"%d" ,&m);
for(i=0;i<m;i++){
fscanf(fi,"%d%d" ,&t,&x);
if(t==0){
rez=0;
for(pas=1<<18;pas;pas>>=1)
if(rez+pas<=n&&v[rez+pas]<=x)
rez+=pas;
if(v[rez]!=x)
fprintf(fout,"-1\n");
else
fprintf(fout,"%d\n" ,rez);
}
if(t==1){
rez=0;
for(pas=1<<18;pas;pas>>=1)
if(rez+pas<=n&&v[rez+pas]<=x)
rez+=pas;
fprintf(fout,"%d\n" ,rez);
}
if(t==2){
rez=0;
for(pas=1<<18;pas;pas>>=1)
if(rez+pas<=n&&v[rez+pas]<x)
rez+=pas;
fprintf(fout,"%d\n" ,rez+1);
}
}
fclose(fi);
fclose(fout);
return 0;
}