Pagini recente » Cod sursa (job #543574) | Cod sursa (job #1083224) | Cod sursa (job #825838) | simulare_oji_2024_clasele_11_12_16_februarie | Cod sursa (job #1768238)
#include <stdio.h>
#define L 16
int v[100000],n;
int r0(int x){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(v[i+pas]<=x && i+pas<=n)
i+=pas;
pas/=2;
}
if(v[i]==x)
return i;
return -1;
}
int r1(int x){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(v[i+pas]<=x && i+pas<=n)
i+=pas;
pas/=2;
}
return i;
}
int r2(int x){
int i,pas;
i=0;
pas=1<<L;
while(pas!=0){
if(v[i+pas]<x && i+pas<=n)
i+=pas;
pas/=2;
}
return i+1;
}
int main(){
FILE *fin=fopen("cautbin.in","r");
FILE *fout=fopen("cautbin.out","w");
int i,m,tip,x;
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&v[i]);
fscanf(fin,"%d",&m);
for(i=1; i<=m; i++){
fscanf(fin,"%d%d",&tip,&x);
if(tip==0)
fprintf(fout,"%d\n",r0(x));
else if(tip==1)
fprintf(fout,"%d\n",r1(x));
else
fprintf(fout,"%d\n",r2(x));
}
fclose(fin);
fclose(fout);
return 0;
}