Pagini recente » Cod sursa (job #1356134) | Cod sursa (job #3240750) | Cod sursa (job #2953959) | Cod sursa (job #352074) | Cod sursa (job #3273383)
#include<fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int v[100000];
int main(){
int n,m,st,dr,mij,pozfin,x,c;
cin>>n;
for(int i=0;i<n;i++)
cin>>v[i];
cin>>m;
for(int i=0;i<m;i++){
cin>>c>>x;
st=0;
dr=n-1;
pozfin=-2;
if(c==0){
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]==x){
pozfin=mij;
st=mij+1;
}
else if(v[mij]<x)
st=mij+1;
else
dr=mij-1;
}
cout<<pozfin+1;
}
if(c==1){
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]<=x){
st=mij+1;
pozfin=mij;
}
else
dr=mij-1;
}
cout<<pozfin+1;
}
if(c==2){
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>=x){
dr=mij-1;
pozfin=mij;
}
else
st=mij+1;
}
cout<<pozfin+1;
}
cout<<'\n';
}
}