Pagini recente » Cod sursa (job #167643) | Cod sursa (job #3218114) | Cod sursa (job #1543297) | Cod sursa (job #1345641) | Cod sursa (job #1885826)
#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=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 (v[caut_bin(v,x)]==x) g<<caut_bin(v,x)+1<<"\n";
else g<<-1<<"\n";
}
}
}