Pagini recente » Cod sursa (job #539175) | Cod sursa (job #2717278) | Cod sursa (job #1356111) | Cod sursa (job #1386424) | Cod sursa (job #203636)
Cod sursa(job #203636)
#include <stdio.h>
#define MAXn 100001
int s, n, m, a [MAXn];
int binary_search (int v)
{
int i, cs=s;
for (i=0; cs; cs >>= 1)
if (i+cs <=n && a [i+cs] <= v)
i+=cs;
return i;
}
int main ()
{
freopen ("cautbin.in", "r", stdin);
freopen ("cautbin.out", "w", stdout);
int i, o, x, p;
scanf ("%d", &n);
for (s=1; s<n; s <<= 1);
for (i=1; i<=n; ++i)
scanf ("%d", &a [i]);
scanf ("%d", &m);
for (i=1; i<=m; ++i)
{
scanf ("%d %d", &o, &x);
p=binary_search (x);
if (o == 2) while (a [p] < x) ++p;
if (o != 0 || (o == 0 && a [p] == x))
printf ("%d\n", p);
else
printf ("-1\n");
}
return 0;
}