Pagini recente » Cod sursa (job #2602126) | Cod sursa (job #253160) | Cod sursa (job #491734) | Cod sursa (job #3267699) | Cod sursa (job #3005315)
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[100001];
int main(){
int n,m,cer,x;
f>>n;
for(int i=1;i<=n;++i)
f>>v[i];
f>>m;
while(m--){
f>>cer>>x;
if(cer==0){
int st=1,dr=n;
int poz=-1;
while(st<=dr){
int m=(st+dr)/2;
if(v[m]==x){
poz=m;
st++;
}
if(v[m]<x)
st++;
if(v[m]>x)
dr--;
}
g<<poz<<'\n';
}
if(cer==1){
int st=1,dr=n;
int poz=-1;
while(st<=dr){
int m=(st+dr)/2;
if(v[m]<=x){
poz=m;
st++;
}
if(v[m]>x)
dr--;
}
g<<poz<<'\n';
}
if(cer==2){
int st=1,dr=n;
int poz=-1;
while(st<=dr){
int m=(st+dr)/2;
if(v[m]>=x){
dr--;
poz=m;
}
if(v[m]<x)
st++;
}
g<<poz<<'\n';
}
}
return 0;
}
cautbin