Pagini recente » Cod sursa (job #2263105) | Cod sursa (job #3247678) | Cod sursa (job #2979857) | Cod sursa (job #1103639) | Cod sursa (job #346232)
Cod sursa(job #346232)
#include <iostream>
#include <fstream>
using namespace std;
int main(){
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n,m;
int v[100000];
in>>n;
for(int i=0;i<n;++i) in>>v[i];
in>>m;
for(;m>0;--m){
int a,x;
in>>a>>x;
if(a==0){
int i=0,j=n-1;
while(i!=j){
if(x<v[(i+j+1)/2]) j=(i+j+1)/2-1;
else i=(i+j+1)/2;
}
if(v[i]!=x) i=-2;
out<<i+1<<"\n";
}else if(a==1){
int i=0,j=n-1;
while(i!=j){
if(x<v[(i+j+1)/2]) j=(i+j+1)/2-1;
else i=(i+j+1)/2;
}
out<<i+1<<"\n";
}else{
int i=0,j=n-1;
while(i!=j){
if(x>v[(i+j-1)/2]) i=(i+j-1)/2+1;
else j=(i+j-1)/2;
}
out<<i+1<<"\n";
}
}
}