Pagini recente » Cod sursa (job #2566034) | Cod sursa (job #912067) | Cod sursa (job #2887763) | Cod sursa (job #1958162) | Cod sursa (job #2223898)
#include <fstream>
std::ifstream cin("cautbin.in");
std::ofstream cout("cautbin.out");
#define maxn 100010
int n,m,v[maxn],bin;
int main()
{
int sbin,cer,val,i;
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(bin=1;bin<=n;bin <<=1);
cin>>m;
for(;m;m--){
cin>>cer>>val;
if(cer<2){
for(sbin=bin,i=0;sbin;sbin>>=1)
if(i+sbin<=n&&v[i+sbin]<=val)
i+=sbin;
if(!cer&&v[i]!=val)
cout<<"-1\n";
else
cout<<i<<'\n';
continue;
}
for(sbin=bin,i=n;sbin;sbin>>=1)
if(i-sbin>0&&v[i-sbin]>=val)
i-=sbin;
cout<<i<<'\n';
}
}