Pagini recente » Cod sursa (job #1877486) | Cod sursa (job #1874205) | Cod sursa (job #3245592) | Cod sursa (job #2458969) | Cod sursa (job #2281351)
#include<fstream>
using namespace std;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n,m,a[100005],S,c,x;
int cb0(int x){
int step=S,i=0;
while(step>0){
if(i+step<=n && a[i+step]<=x)
i+=step;
step>>=1;
}
if(a[i]==x) return i;
else return -1;
}
int cb1(int x){
int step=S,i=0;
while(step>0){
if(i+step<=n && a[i+step]<=x)
i+=step;
step>>=1;
}
return i;
}
int cb2(int x){
int step=S,i=0;
while(step>0){
if(i+step<=n && a[i+step]<x)
i+=step;
step>>=1;
}
return i+1;
}
int main(){
cin>>n;
for(S=1;S<=n;S<<=1);
for(int i=1;i<=n;i++)
cin>>a[i];
cin>>m;
while(m--){
cin>>c>>x;
if(c==0) cout<<cb0(x)<<'\n';
else if(c==1) cout<<cb1(x)<<'\n';
else cout<<cb2(x)<<'\n';
}
}