Pagini recente » Cod sursa (job #3360506) | Cod sursa (job #3360509) | Cod sursa (job #3359269) | Cod sursa (job #3359406) | Cod sursa (job #3360491)
#include <stdio.h>
#define NMAX 100000
int v[NMAX];
int main(){
FILE *fin, *fout;
int n, m, i, c, x, st, dr, mij;
fin = fopen ("cautbin.in", "r");
fout = fopen ("cautbin.out", "w");
fscanf (fin, "%d", &n);
for (i = 0; i < n; i++)
fscanf (fin, "%d", &v[i]);
fscanf (fin, "%d", &m);
for (i = 0; i < m; i++){
fscanf (fin, "%d%d", &c, &x);
if (c == 0){
st = 0;
dr = n;
while (dr - st > 1){
mij = (st + dr) / 2;
if (v[mij] <= x)
st = mij;
else
dr = mij;
}
if (v[st] == x)
fprintf (fout, "%d\n", st + 1);
else
fprintf (fout, "-1\n");
} else if (c == 1){
st = 0;
dr = n;
while (dr - st > 1){
mij = (st + dr) / 2;
if (v[mij] <= x)
st = mij;
else
dr = mij;
}
fprintf (fout, "%d\n", st + 1);
} else {
st = 0;
dr = n;
while (dr - st > 1){
mij = (st + dr) / 2;
if (v[mij] < x)
st = mij;
else
dr = mij;
}
fprintf (fout, "%d\n", dr + 1);
}
}
fclose (fin);
fclose (fout);
return 0;
}