Pagini recente » Cod sursa (job #1927495) | Cod sursa (job #1470454) | Cod sursa (job #1169980) | Cod sursa (job #3212913) | Cod sursa (job #2856942)
#include <stdio.h>
int v[100000];
int main(){
int n, m, caz, x, dr, st, mij, i;
FILE *fin, *fout;
fin=fopen("cautbin.in", "r");
fout=fopen("cautbin.out", "w");
fscanf(fin, "%d", &n);
for(i=0; i<n; i++)
fscanf(fin, "%d", &v[i]);
fscanf(fin, "%d", &m);
for(i=0; i<m; i++){
fscanf(fin, "%d%d", &caz, &x);
if(caz<2){ /// caz=0 sau caz=1
st=0;
dr=n;
while(dr-st>1){
mij=(st+dr)/2;
if(v[mij]>x)
dr=mij;
else
st=mij;
}
if(caz==0){ ///caz=0
if(x==v[st])
fprintf(fout, "%d\n", st+1);
else
fprintf(fout, "-1\n");
}else /// caz=1
fprintf(fout, "%d\n", st+1);
}else{ /// caz=2
st=-1;
dr=n-1;
while(dr-st>1){
mij=(st+dr)/2;
if(v[mij]<x)
st=mij;
else
dr=mij;
}
fprintf(fout, "%d\n", dr+1);
}
}
fclose(fin);
fclose(fout);
return 0;
}