Pagini recente » Cod sursa (job #2834477) | Cod sursa (job #878482) | Cod sursa (job #3246231) | Cod sursa (job #848293) | Cod sursa (job #930775)
Cod sursa(job #930775)
#include<fstream>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
const int N = 100001;
int v[N];
int n,m,p,q;
int caut0(int x){
int i=0,pas=1<<30;
while(pas!=0){
if(i+pas<=n && v[i+pas]<=x) i+=pas;
pas>>=1;
}
if(v[i]==x) return i;
return -1;
}
int caut1(int x){
int i=0,pas=1<<30;
while(pas!=0){
if(i+pas<=n && v[i+pas]<=x) i+=pas;
pas>>=1;
}
return i;
}
int caut2(int x){
int i=0,pas=1<<30;
while(pas!=0){
if(i+pas<=n && v[i+pas]<x) i+=pas;
pas>>=1;
}
return i+1;
}
int main(){
int i;
in>>n;
for(i=1;i<=n;i++) in>>v[i];
in>>m;
for(i=1;i<=m;i++){
in>>p>>q;
if(p==0) out<<caut0(q)<<'\n';
if(p==1) out<<caut1(q)<<'\n';
if(p==2) out<<caut2(q)<<'\n';
}
return 0;
}