Pagini recente » Cod sursa (job #889712) | Cod sursa (job #2648085) | Cod sursa (job #1146168) | Cod sursa (job #2079863) | Cod sursa (job #2287992)
#include <cstdio>
FILE *fin = freopen("cautbin.in","r",stdin);
FILE *fout = freopen("cautbin.out","w",stdout);
static const int NMAX = 1e5+5;
int n,m;
int v[NMAX];
int main()
{
scanf("%d",&n);
for(int i =1; i<= n; ++i)
scanf("%d",&v[i]);
scanf("%d",&m);
int logN = 1;
for(;logN<=n;logN<<=1);
int p,x;
for(int i = 1; i<= m; ++i)
{
scanf("%d%d",&p, &x);
int k = 0;
if(p < 2)
{
for(int lg = logN; lg; lg>>=1)
{
if(k + lg <= n)
{
if(v[k+lg] <= x)
k+=lg;
}
}
if(!p && v[k] != x)
printf("-1\n");
else
printf("%d\n",k);
}
else
{
for(int lg = logN; lg; lg >>=1)
{
if(k + lg <= n)
{
if(v[k+lg] < x)
k+=lg;
}
}
printf("%d\n",k+1);
}
}
return 0;
}