Pagini recente » Cod sursa (job #1853153) | Cod sursa (job #1477993) | Cod sursa (job #92714) | Cod sursa (job #1567215) | Cod sursa (job #1594447)
#include <fstream>
using namespace std;
ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");
int a[100005], n, m;
int caut( int nr ){
int pas,i;
for(pas=1; pas<n; pas <<=1);
for(i=0; pas; pas >>=1)
if((i+pas<n)&&(a[i+pas]<=nr)) i+=pas;
return i;
}
int main (){
cin >> n;
for(int i(0); i<n; i++) cin >> a[i];
cin >> m;
int x,nr,rz;
for(int i(0); i<m; i++) {
cin >> x >> nr;
if(x==0){
rz=caut(nr);
if(a[rz]==nr) cout << rz+1 << "\n";
else cout << -1 << "\n";
}
if(x==1) cout << caut(nr)+1 << "\n";
if(x==2){
rz=caut(nr);
//cout << rz << "\n";
if(a[rz]==nr) {
int rz2=caut(nr-1);
if(a[rz]==nr-1) cout << rz2+1 << "\n";
else cout << rz2+2 << "\n";
}
else cout << rz+2 << "\n";
}
}
return 0;
}