Pagini recente » Cod sursa (job #389577) | Cod sursa (job #770126) | Cod sursa (job #774728) | Cod sursa (job #1306839) | Cod sursa (job #2420887)
#include<cstdio>
#define M 10000000
int n,m,i,v[100001],x,y,s,l,t,o;
char r[M];
inline int A()
{
int s=0;
for(;r[t]<48;t++);
for(;r[t]>47;t++)
s=s*10+r[t]-48;
return s;
}
inline void S(int x)
{
if(x==-1)
{
r[o++]=45,r[o++]=49,r[o++]=10;
return;
}
int i,d=x>99999?6:x>9999?5:x>999?4:x>99?3:x>9?2:1;
for(i=d-1;i>=0;x/=10,i--)
r[o+i]=x%10+48;
r[o+d]=10,o+=d+1;
}
int main()
{
freopen("cautbin.in","r",stdin),freopen("cautbin.out","w",stdout),fread(r,1,M,stdin),n=A();
for(i=1;i<=n;i++)
v[i]=A();
for(m=A(),l=1;l<=n;l<<=1);
while(m--)
{
x=A(),y=A();
if(x<2)
{
for(s=l,i=0;s;s>>=1)
if(i+s<=n&&v[i+s]<=y)
i+=s;
S((!x&&v[i]!=y?-1:i));
continue;
}
for(s=l,i=n;s;s>>=1)
if(i>s&&v[i-s]>=y)
i-=s;
S(i);
}
fwrite(r,1,o,stdout);
}