Pagini recente » Cod sursa (job #3154238) | Cod sursa (job #2149891) | Cod sursa (job #325074) | Cod sursa (job #1619375) | Cod sursa (job #2087976)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int a[100001],n;
int caut(int x){
int pas=1<<16,r=0;
while(pas){
if(r+pas<=n && a[r+pas]<=x)
r+=pas;
else
pas/=2;
}
return r;
}
int main(){
int q,t,i,nr;
in>>n;
for(i=1; i<=n; ++i)
in>>a[i];
in>>q;
while(q--){
cin>>t>>i;
nr=caut(i);
if(!t){
if(a[nr]==i)
out<<nr;
else
out<<-1;
}
else if(t==1)
out<<nr;
else{
while(a[nr]>=i)
--nr;
out<<nr+1;
}
out<<"\n";
}
return 0;
}