Pagini recente » Cod sursa (job #1699387) | Cod sursa (job #1846279) | Cod sursa (job #793878) | Cod sursa (job #264923) | Cod sursa (job #1885831)
#include <bits/stdc++.h>
using namespace std;
int caut_bin(vector <int> &v,int x)
{
int i=0;
for (int step=(1<<19);step>=1;step/=2)
{
if (i+step<v.size()&&v[i+step]<=x) i+=step;
}
return i;
}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,x,t,m;
f>>n;
vector <int> v(n);
for (int i=1;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)<<'\n';
}
if (t==2)
{
g<<caut_bin(v,x-1)+1<<'\n';
}
if (t==0)
{
if (v[caut_bin(v,x)]==x) g<<caut_bin(v,x)<<"\n";
else g<<-1<<"\n";
}
}
}