Pagini recente » Cod sursa (job #522705) | Cod sursa (job #1259342) | Cod sursa (job #1384839) | Cod sursa (job #1851834) | Cod sursa (job #2883305)
#include <bits/stdc++.h>
using namespace std;
int n , i , a[100005] , m , st , dr , j , x , c , mij , p ;
ifstream f("cautbin.in") ;
ofstream g("cautbin.out") ;
int main()
{
f >> n ;
for(i=1;i<=n;i++) f >> a[i] ;
sort(a+1 , a+n+1) ;
f >> m ;
for(i=1;i<=m;i++){
f >> c >> x ;
st=1 ;
dr=n ;
p=-1 ;
if(c==0){
while(st<=dr){
mij=(st+dr)/2 ;
if(a[mij]<=x){
if(a[mij]==x) p=mij ;
st=mij+1 ;
}
else dr=mij-1 ;
}
}
if(c==1){
while(st<=dr){
mij=(st+dr)/2 ;
if(a[mij]<=x){
p=mij ;
st=mij+1 ;
}
else dr=mij-1 ;
}
}
if(c==2){
while(st<=dr){
mij=(st+dr)/2 ;
if(a[mij]<x){
st=mij+1 ;
}
else if(a[mij]>=x) {
dr=mij-1 ;
p=mij ;
}
}
}
g << p << '\n' ;
}
}