Pagini recente » Cod sursa (job #3167511) | Cod sursa (job #1600402) | Cod sursa (job #2771971) | Cod sursa (job #1088277) | Cod sursa (job #387001)
Cod sursa(job #387001)
#include<stdio.h>
FILE *f= fopen("cautbin.in","r");
FILE *g= fopen("cautbin.out","w");
int n,m;
int v[100001];
int main(){
int b,o,x,i;
fscanf(f,"%d",&n);
int log;for(log=1;log<n; log<<=1); log>>=1;
for(i=1;i<=n;i++) fscanf(f,"%d",&v[i]);
fscanf(f,"%d",&m);
for( ; m ; --m ){
fscanf(f,"%d %d",&o,&x);
if( o < 2 ){
for( i=0, b=log;b ; b>>=1 )
if( i+b <= n && v[i+b] <= x ) i+=b;
if( v[i]!=x && !o ) fprintf(g,"-1\n");
else fprintf(g,"%d\n",i);
}else {
for( i=n,b=log; b ; b>>=1 )
if( i - b && v[i-b] >= x ){ i-=b;
fprintf(g,"%d\n",i);
}
}
}
return 0;
}