Pagini recente » Cod sursa (job #1942362) | Cod sursa (job #2936360) | Cod sursa (job #2278144) | Cod sursa (job #2076907) | Cod sursa (job #256233)
Cod sursa(job #256233)
# include <stdio.h>
int i,n,p,u,m,v[100],x,M,tip,max,j,ok,min;
int main() {
FILE *f = fopen("cautbin.in","r");
FILE *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 (i=1;i<=M;i++) {
fscanf(f,"%d",&tip);
fscanf(f,"%d",&x);
if (tip==0) {
p=1;
u=n;
while (p<=u) {
m=(p+u)/2;
if (x==v[m])
ok=1;
if (x>=v[m])
p=m+1;
else
u=m-1;
}
if (ok==1)
fprintf(g,"%d\n",u);
else
fprintf(g,"-1\n");
}
if (tip==1) {
max=v[1];
for (j=1;j<=n;j++)
if ((v[j]>max)&&(v[j]<x))
max=v[j];
p=1;
u=n;
while (p<=u) {
m=(p+u)/2;
if (max>=v[m])
p=m+1;
else
u=m-1;
}
fprintf(g,"%d\n",u);
}
if (tip==2) {
min=v[n];
for (j=1;j<=n;j++)
if ((v[j]<min)&&(v[j]>=x))
min=v[j];
p=1;
u=n;
while (p<=u) {
m=(p+u)/2;
if (min>=v[m])
p=m+1;
else
u=m-1;
}
fprintf(g,"%d\n",u);
}
}
fclose(f);
fclose(g);
return 0;
}