Pagini recente » Cod sursa (job #3213483) | Cod sursa (job #1624779) | Cod sursa (job #1230997) | Cod sursa (job #2206446) | Cod sursa (job #282429)
Cod sursa(job #282429)
#include <stdio.h>
#define dim 100010
int n,out,m,i,x,s,d,o,op,v[dim];
FILE *f=fopen("cautbin.in","r");
FILE *g=fopen("cautbin.out","w");
void citeste() {
fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
fscanf(f,"%d",&o);
}
void o0() {
out = -1;
s = 1;
d = n;
while (s <= d) {
m = s+(d-s)/2;
if (x > v[m])
s = m+1;
else if (x < v[m])
d = m-1;
else {
s = d+1;
out = m;
}
}
fprintf(g,"%d\n",out);
}
void o1() {
s = 1;
d = n;
while (s <= d) {
m = s+(d-s)/2;
if (x >= v[m]){
out = m;
s = m+1;
}
else
d = m-1;
}
fprintf(g,"%d\n",out);
}
void o2() {
s = 1;
d = n;
while (s <= d) {
m = s+(d-s)/2;
if (x <= v[m]){
out = m;
d = m-1;
}
else
s = m+1;
}
fprintf(g,"%d\n",out);
}
int main() {
citeste();
for (i=1;i<=o;i++) {
fscanf(f,"%d %d",&op,&x);
if (op==0) o0();
if (op==1) o1();
if (op==2) o2();
}
fclose(f);
fclose(g);
return 0;
}