Pagini recente » Cod sursa (job #2264585) | Cod sursa (job #128031) | Cod sursa (job #126868) | Cod sursa (job #57514) | Cod sursa (job #1584902)
#include <stdio.h>
int v[100000];
int n;
int caut0(int x){
int i,pas;
pas=1<<16;
i = 0;
while (pas!=0){
if(i+pas<=n && v[i+pas]<=x) i = i + pas;
pas = pas / 2;
}
if(v[i]==x) return i;
return -1;
}
int caut1(int x){
int i,pas;
pas=1<<16;
i = 0;
while (pas!=0){
if(i+pas<=n && v[i+pas]<=x) i = i + pas;
pas = pas / 2;
}
return i;
}
int caut2(int x){
int i,pas;
pas=1<<16;
i = 0;
while (pas!=0){
if(i+pas<=n && v[i+pas]<x) i = i + pas;
pas = pas / 2;
}
return i+1;
}
int main()
{
int m,i,caz,nr;
FILE *fin, *fout;
fin = fopen ("cautbin.in", "r");
fout = fopen("cautbin.out","w");
fscanf (fin, "%d", &n);
for(i=0;i<=n-1;i++){
fscanf(fin,"%d",&v[i]);
}
fscanf(fin,"%d",&m);
for(i=1; i<=m; i++){
fscanf(fin, "%d%d", &caz, &nr);
if(caz==0) fprintf (fout, "%d\n", caut0(nr)+1);
else if(caz==1) fprintf (fout, "%d\n", caut1(nr)+1);
else if(caz==2) fprintf (fout, "%d\n", caut2(nr)+1);
}
fclose (fin);
fclose (fout);
return 0;
}