Pagini recente » Cod sursa (job #1545630) | Cod sursa (job #2099625) | Cod sursa (job #876931) | Cod sursa (job #1746197) | Cod sursa (job #555400)
Cod sursa(job #555400)
#include<stdio.h>
FILE*fin,*fout;
int i,j,n,v[100001],t,x,nr;
int caut0(int x){
int p,u,m,k;
p=1;u=n;
while(p<=u){
m=(p+u)/2;
if(v[m]>x){u=m-1;}
if(v[m]==x){p=m+1;k=m;}
}
return k;
}
int caut1(int x){
int u,p,m,k;
p=1;u=n;
while(p<=u){
m=(p+u)/2;
if(v[m]>x){u=m-1;}
else{p=m+1;k=m;}
}
return k;
}
int caut2(int x){
int p,u,m,k;
p=1;u=n;
while(p<=u){
m=(p+u)/2;
if(v[m]>=x){u=m-1;k=m;}
else{p=m+1;}
}
return k;
}
int main(){
fin=fopen("cautbin.in","r");
fout=fopen("cautbin.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
fscanf(fin,"%d",&v[i]);
}
int ok;
fscanf(fin,"%d",&nr);
for(i=1;i<=nr;i++){
fscanf(fin,"%d %d",&t,&x);
if(t==0){
ok=caut0(x);
if(ok!=0){fprintf(fout,"%d\n",ok);
}
else{fprintf(fout,"-1\n");}
}
if(t==1){
ok=caut1(x);
fprintf(fout,"%d\n",ok);
}
if(t==2){
ok=caut2(x);
fprintf(fout,"%d\n",ok);
}
}
return 0;}