Pagini recente » Cod sursa (job #845306) | Cod sursa (job #1162250) | Rating Butnaru Sebastian (ButnaruSebastian) | Istoria paginii runda/creare | Cod sursa (job #1264193)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
int n,v[100005],i,j,m,p,pp,a,b,st,dr,mij,sol;
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
f>>m;
for(i=1;i<=m;i++){
f>>a>>b;
p=0;
dr=n;
st=1;
sol=-1;
if(a==0) while(st<=dr){
mij=(st+dr)/2;
if(b<v[mij]) dr=mij-1;
if(b>v[mij]) st=mij+1;
if(b==v[mij]){sol=mij;st=mij+1;}
}
if(a==1)while(st<=dr){
mij=(st+dr)/2;
if(b>=v[mij]) {sol=mij;st=mij+1;}
else dr=mij-1;
}
if(a==2) while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>=b) {sol=mij;dr=mij-1;}
else st=mij+1;
}
if(sol>0) g<<sol<<'\n';
else g<<-1<<'\n';
}
return 0;
}