Pagini recente » concurs_11_12_02_25 | Ciorna | Clasament 8922938808215294 | Clasament aicluj_08-11 | Cod sursa (job #2883314)
#include <bits/stdc++.h>
using namespace std;
int n , i , x , a[100005], m , dr , st , q , poz=-1;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int main()
{
f >> n ;
for(i=1;i<=n;i++)f >> a[i];
f >> m ;
for(i=1;i<=m;i++){
f >> q >> x ;
poz=-1;
if(q==0){
dr=1;
st=n;
while(dr<=st){
m=(dr+st)/2;
if(a[m]<x)dr++;
else if(a[m]==x)poz=m,dr++;
else if(a[m]>x)st--;
}
g << poz << '\n';
}
else if(q==1){
dr=1;
st=n;
while(dr<=st){
m=(dr+st)/2;
if(a[m]<=x)poz=m,dr++;
else if(a[m]>x)st--;
}
g << poz << '\n';
}
else if(q==2){
dr=1;
st=n;
while(dr<=st){
m=(dr+st)/2;
if(a[m]>=x)poz=m,st--;
else if(a[m]<x)dr++;
}
g << poz << '\n';
}
}
}