Pagini recente » Cod sursa (job #3224416) | Cod sursa (job #2465485) | Cod sursa (job #1208314) | Cod sursa (job #990181) | Cod sursa (job #1418218)
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100000
int v[MAXN];
int main(){
FILE*fi,*fout;
int i,nr,t,poz,mij,st,dr,n,x;
fi=fopen("cautbin.in" ,"r");
fout=fopen("cautbin.out" ,"w");
fscanf(fi,"%d" ,&n);
for(i=0;i<n;i++)
fscanf(fi,"%d" ,&v[i]);
fscanf(fi,"%d" ,&t);
for(i=0;i<t;i++){
fscanf(fi,"%d%d" ,&nr,&x);
if(nr==0||nr==2){
st=0;
dr=n;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>=x){
poz=mij;
dr=mij-1;
}
else
st=mij+1;
}
if(nr==0){
while(poz<n&&v[poz]==v[poz+1])
poz++;
if(v[n-1]==v[n])
poz++;
if(v[poz]!=x)
poz=-2;
}
}
if(nr==1){
st=0;
dr=n;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]<=x){
poz=mij;
st=mij+1;
}
else
dr=mij-1;
}
}
fprintf(fout,"%d\n" ,poz+1);
}
fclose(fi);
fclose(fout);
return 0;
}