Pagini recente » Cod sursa (job #261190) | Cod sursa (job #950297) | Cod sursa (job #267722) | Cod sursa (job #1587131) | Cod sursa (job #2075019)
#include <iostream>
#include <cstdio>
using namespace std;
int n, m, a[100050];
void rez(int lg)
{
int i, pb, x;
scanf("%d %d\n", &pb, &x);
if(pb<2)
{
for(i = 0; lg; lg>>=1)
if(i+lg<=n && a[i+lg] <= x)
i+=lg;
if(!pb && a[i] != x)
printf("-1 \n");
else
printf("%d \n", i);
return;
}
for(i = n; lg; lg>>=1)
if(i-lg>0 && a[i-lg] >= x)
i-=lg;
printf("%d \n", i);
}
int main()
{
int lg;
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
scanf("%d\n", &n);
for(int i = 1; i<=n; ++i)
scanf("%d ", &a[i]);
for(lg = 1; lg < n; lg<<=1)
{}
scanf("%d \n", &m);
for(;m; --m)
{
rez(lg);
}
return 0;
}