Pagini recente » Cod sursa (job #320366) | Cod sursa (job #2748072) | Cod sursa (job #291729) | Cod sursa (job #304426) | Cod sursa (job #1248428)
#include<fstream>
using namespace std;
fstream in ("cautbin.in" , ios::in ),
out("cautbin.out", ios::out);
int n, m, v[100005];
int caut0(int x){
int i = 0, pas = 1<<16;
while(pas!=0){
if( i+pas<=n && v[i+pas]<=x )
i+=pas;
pas/=2;
}
if( v[i] != x ) return -1;
return i;
}
int caut1(int x){
int i = 0, pas = 1<<16;
while(pas!=0){
if( i+pas<=n && v[i+pas]<=x )
i+=pas;
pas/=2;
}
return i;
}
int caut2(int x){
int i = 0, pas = 1<<16;
while(pas!=0){
if( i+pas<=n && v[i+pas]<x )
i+=pas;
pas/=2;
}
return i;
}
int main(){
in >> n;
for(int i=1; i<=n; i++){
in >> v[i];
}
in >> m;
int x, y;
for(int i=0; i<m; i++){
in >> x >> y;
switch( x ){
case 0: out << caut0( y ) <<'\n'; break;
case 1: out << caut1( y ) <<'\n'; break;
case 2: out << caut2( y )+1<<'\n'; break;
}
}
return 0;
}