Pagini recente » Cod sursa (job #2125781) | Cod sursa (job #2640653) | Cod sursa (job #752226) | Cod sursa (job #2883935) | Cod sursa (job #2629338)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n, cer, x, m, bb;
int v[100001];
int bins(int x)
{
int i=0, step=1;
while(step<n) step<<=1;
for(;step; step>>=1)
{
if(i+step<=n && v[i+step]<=x) i+=step;
}
return i;
}
int main()
{
in>>n;
for(int i=1; i<=n; i++) in>>v[i];
in>>m;
while(m--)
{
in>>cer>>x;
if(cer==0)
{
bb=bins(x);
if(v[bb]!=x) out<<"-1\n";
else out<<bb<<'\n';
}
else if(cer==1)
{
bb=bins(x);
if(v[bb]==x) out<<bb<<'\n';
else out<<bins(x-1)<<'\n';
}
else if(cer==2)
{
bb=bins(x);
if(v[bb]==x) out<<bins(x-1)+1<<'\n';
else out<<bb+1<<'\n';
}
}
return 0;
}