Pagini recente » Cod sursa (job #837320) | Cod sursa (job #2766109) | Cod sursa (job #496552) | Cod sursa (job #2978683) | Cod sursa (job #2839404)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
const int dim=100009;
int n,q,v[dim];
int cb(int x,int tip){
int st=1,dr=n,retine=-1;
while(st<=dr){
int mij=(st+dr)/2;
if(tip<=1){
if(v[mij]<=x){
retine=mij;
st=mij+1;
}
else{
dr=mij-1;
}
}
else{
if(v[mij]>=x){
retine=mij;
dr=mij-1;
}
else{
st=mij+1;
}
}
}
return retine;
}
signed main(){
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
fin>>q;
while(q--){
int op,x;
fin>>op>>x;
int retine=cb(x,op);
retine=(op==0 && v[retine]!=x)? -1 : retine;
fout<<retine<<'\n';
}
}