Pagini recente » Cod sursa (job #471258) | Cod sursa (job #2095412) | Cod sursa (job #474645) | Cod sursa (job #2153456) | Cod sursa (job #1885812)
#include <bits/stdc++.h>
using namespace std;
int caut_ben(const vector<int> &v, const int x){
int sure=0;
for(int step = (2<<19); step>0; step/=2){
const int candidat = step + sure;
if(candidat < v.size() && v[candidat] <= x ) sure=candidat;}
return sure;}
int main()
{
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n;
f>>n;
vector<int> v(n);
for(int i=0; i<n; ++i){
f>>v[i];}
int m;
f>>m;
for(int i=1; i<=m; ++i)
{
int t, x;
f>> t >> x;
if(t==1) g<< caut_ben(v, x)+1 <<'\n';
else if(t==2) g<< caut_ben(v, x-1)+2 <<'\n';
else {
const int temp = caut_ben(v, x);
if(v[temp] == x ) g<< temp+1 <<'\n';
else g<< -1 <<'\n';
}
}
return 0;
}