Pagini recente » Cod sursa (job #2183419) | Cod sursa (job #42294) | Cod sursa (job #2894418) | Cod sursa (job #2804936) | Cod sursa (job #1885802)
#include <bits/stdc++.h>
using namespace std;
int caut_bin(vector <int> v,int x)
{
int i=0;
for (long long step=pow(2,20);step>=1;step/=2)
{
if (i+step<=v.size()&&v[i+step]<=x) i+=step;
}
return i;
}
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
int n,x,t,m;
f>>n;
vector <int> v(n+1,0);
for (int i=0;i<n;++i) f>>v[i];
f>>m;
for (int i=0;i<m;++i)
{
f>>t>>x;
if (t==1)
{
g<<caut_bin(v,x)+1<<'\n';
}
if (t==2)
{
g<<caut_bin(v,x-1)+2<<'\n';
}
if (t==0)
{
if (caut_bin(v,x)==v[caut_bin(v,x)-1]) g<<x+1<<'\n';
else g<<-1<<'\n';
}
}
}