Pagini recente » Cod sursa (job #145073) | Cod sursa (job #626583) | Cod sursa (job #626923) | Cod sursa (job #425449) | Cod sursa (job #2162386)
#include<bits/stdc++.h>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N,M,tip,x,v[100001];
int main()
{
f>>N;
for(int i=1;i<=N;++i)f>>v[i];
f>>M;
while(M--){
f>>tip>>x;
if(tip==0){
int st=1,dr=N,mij;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>x)dr=mij-1;
else st=mij+1;
}
if(v[dr]==x)g<<dr<<'\n';
else g<<-1<<'\n';
}else if(tip==1){
int st=1,dr=N,mij;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>x)dr=mij-1;
else st=mij+1;
}
g<<dr<<'\n';
}else{
int st=1,dr=N,mij;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij]>=x)dr=mij-1;
else st=mij+1;
}
g<<st<<'\n';
}
}
return 0;
}