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