Pagini recente » Cod sursa (job #393454) | Cod sursa (job #2791488) | Cod sursa (job #1329377) | Cod sursa (job #393187) | Cod sursa (job #1503039)
#include <cstdio>
#define NMAX 100007
int n, m, v[NMAX], a, b, px;
int cautbin(int val)
{
int start = 1, step = (1<<25);
for( ; step; step>>=1)
{
int index = start + step;
if(index > n) continue;
if(v[index] <= val) start = index;
}
return start;
}
int main()
{
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d", &n);
for(int i = 1; i<= n; ++i) scanf("%d", &v[i]);
scanf("%d", &m);
for( ; m; --m)
{
scanf("%d %d", &a, &b);
if(a == 0)
{
px = cautbin(b);
if(v[px] == b) printf("%d\n", px);
else printf("-1");
}
if(a == 1)
{
printf("%d\n", cautbin(b));
}
if(a == 2)
{
printf("%d\n", cautbin(b-1)+1);
}
}
return 0;
}