Pagini recente » Cod sursa (job #1724088) | Cod sursa (job #942931) | Cod sursa (job #1648604) | Cod sursa (job #1911487) | Cod sursa (job #1503590)
#include<fstream>
#include<algorithm>
using namespace std;
const int Nmax=100001;
int N,m,v[Nmax], a, b;
int cautbin(int val)
{
int step=(1<<18), start = 0;
for(;step;step>>=1)
{
int index=step+start;
if(index>N) continue;
if(v[index]<=val)
start=index;
}
return start;
}
int main()
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
fin>>N;
for(int i=1;i<=N;++i) fin>>v[i];
fin>>m;
for(int i=1;i<=m;++i)
{
fin>>a>>b;
if(a == 0)
{
int s=cautbin(b);
if(v[s]==b) fout<<s<<"\n";
else fout<<-1<<"\n";
}
if(a == 1)
{
fout<<cautbin(b)<<"\n";
}
if(a == 2)
{
fout<<cautbin(b-1)+1<<"\n";
}
}
return 0;
}