Pagini recente » Cod sursa (job #229140) | Cod sursa (job #986781) | Cod sursa (job #943715) | Cod sursa (job #312555) | Cod sursa (job #1313882)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
#define cout g
#define nmax 100010
int n,v[nmax],i,x,val,step,log,m,tip;
int main()
{
f>>n;
for(i=1;i<=n;++i) f>>v[i];
for(log=1;log<=n;log<<=1);
--log;
f>>m;
for(;m;--m)
{
f>>tip>>val;
x=0;
if(tip<2)
{
for(step=log;step;step>>=1)
if(v[x+step]<=val && x+step<=n) x+=step;
if(tip==1)
{
if(v[x]==val) cout<<x<<'\n';
else cout<<-1<<'\n';
}
else cout<<x<<'\n';
}
else
{
x=n;
for(step=log;step;step>>=1)
if(v[x-step]<=val && x-step>0) x-=step;
cout<<x<<'\n';
}
}
return 0;
}