Pagini recente » Cod sursa (job #2169161) | Cod sursa (job #1603075) | Cod sursa (job #2065009) | Cod sursa (job #2957515) | Cod sursa (job #1217914)
#include <stdio.h>
FILE *f,*g;
#define MAX_N 100001
int v[MAX_N];
int main()
{int n,m,i,pas,t,x,j;
f=fopen("cautbin.in","r");
g=fopen("cautbin.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
fscanf(f,"%d",&m);
for(j=1;j<=m;j++){
fscanf(f,"%d%d",&t,&x);
if(t==0){
i=0;
pas=1<<16;
while(pas>0) {
if (i + pas <= n) {
if (v[i + pas] <= x) {
i = i + pas;
}
}
pas = pas >> 1;
}
if (v[i]==x) {
fprintf(g,"%d\n",i);
} else {
fprintf(g,"-1\n");
}
} else if (t == 1) {
i=0;
pas=1<<16;
while(pas>0) {
if (i + pas <= n) {
if (v[i + pas] <= x) {
i = i + pas;
}
}
pas = pas >> 1;
}
fprintf(g,"%d\n",i);
} else {
i=0;
pas=1<<16;
while(pas>0) {
if (i + pas <= n) {
if (v[i + pas] < x) {
i = i + pas;
}
}
pas = pas >> 1;
}
++i;
fprintf(g,"%d\n",i);
}
}
return 0;
}