Pagini recente » Cod sursa (job #2335462) | Cod sursa (job #933190) | Cod sursa (job #947779) | Cod sursa (job #2043286) | Cod sursa (job #1330760)
#include<fstream>
using namespace std;
int n, m, op, x[100003], p, u, i, mij, k;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int main(){
in>>n;
for(i=1; i<=n; i++)
in>>x[i];
in>>m;
for(;m--;){
in>>op>>k;
if(op==0){
p=1; u=n;
while(p<=u){
mij=p+(u-p)/2;
if(x[mij]>k)
u=mij-1;
else
p=mij+1;
}
if(x[u]==k)
out<<u<<"\n";
else
out<<"-1"<<"\n";
continue;
}
if(op==1){
p=1; u=n;
while(p<=u){
mij=p+(u-p)/2;
if(x[mij]>k)
u=mij-1;
else
p=mij+1;
}
out<<u<<"\n";
continue;
}
if(op==2){
p=1; u=n;
while(p<=u){
mij=p+(u-p)/2;
if(x[mij]>=k)
u=mij-1;
else
p=mij+1;
}
out<<p<<"\n";
continue;
}
}
return 0;
}