Pagini recente » Cod sursa (job #1298416) | Cod sursa (job #1389550) | Clasament contest_4 | Cod sursa (job #875945) | Cod sursa (job #205262)
Cod sursa(job #205262)
#include<stdio.h>
int N,M,a[100010];
FILE *fin=fopen("cautbin.in","r"),
*fout=fopen("cautbin.out","w");
void rezolvare(int nr,int c){
int li=1,lf=N;
while(lf-li>1){
int mij=(li+lf)>>1;
if(a[mij]<=nr) li=mij;
else
lf=mij;
}
// fprintf(fout,"%d %d ",li,lf);
if(c==0){
if(a[lf]==nr) fprintf(fout,"%d\n",lf);
else
if(a[li]==nr) fprintf(fout,"%d\n",li);
else
fprintf(fout,"-1\n");
}
else
if(c==1){
if(a[lf]==nr)
fprintf(fout,"%d\n",lf);
else
fprintf(fout,"%d\n",li);
}
else{
if(a[li]==nr)
fprintf(fout,"%d\n",li);
else
fprintf(fout,"%d\n",lf);
}
}
int main(){
fscanf(fin,"%d",&N);
for(int i=1;i<=N;i++)
fscanf(fin,"%d",&a[i]);
fscanf(fin,"%d",&M);
for(int i=1;i<=M;i++){
int c,nr;
fscanf(fin,"%d %d",&c,&nr);
rezolvare(nr,c);
}
fclose(fin);
fclose(fout);
return 0;
}