Pagini recente » Cod sursa (job #1435422) | Cod sursa (job #1542061) | Cod sursa (job #1833562) | Cod sursa (job #2104011) | Cod sursa (job #2604410)
#include <fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n,m,x[100001],t,v;
int lg;
int main()
{
cin>>n;
for(lg=1;lg<=n;lg<<=1);
for(int i=1;i<=n;i++)
cin>>x[i];
cin>>m;
for(;m;--m)
{
cin>>t>>v;
if(t<2)
{
int i,ans;
for(ans=lg,i=0;ans;ans>>=1)
{
if(i+ans<=n && x[i+ans]<=v)
i+=ans;
}
cout<<(t==0 && v!=x[i]?-1:i)<<endl;
continue;
}
else
{
int i,ans;
for(ans=lg,i=n;ans;ans>>=1)
{
if(i-ans>0 && x[i-ans]>=v)
i-=ans;
}
cout<<i<<endl;
continue;
}
}
return 0;
}