Pagini recente » Cod sursa (job #2814186) | Clasament fhdnfnfn | Cod sursa (job #3177642) | Cod sursa (job #3279083)
#include <bits/stdc++.h>
#define DIM 100001
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[DIM];
int n, m, query, x;
void solve1(){
int st=1, dr=n, mij, ret=-1;
while(st<=dr){
mij=(st+dr)/2;
if(v[mij] == x){
ret=mij;
st=mij+1;
}
else if(v[mij] < x){
st=mij+1;
}
else{
dr=mij-1;
}
}
fout << ret << endl;
}
void solve2(){
int st=1,dr=n,mij,ret=1;
while(st<=dr){
mij = (st+dr)/2;
if(v[mij]<= x){
ret=mij;
st=mij+1;
}
else if(v[mij] > x){
dr=mij-1;
}
}
fout << ret << endl;
}
void solve3(){
int st=1,dr=n,mij,ret=1;
while(st<=dr){
mij = (st+dr)/2;
if(v[mij] >= x){
ret=mij;
dr=mij-1;
}
else if(v[mij] < x){
st=mij+1;
}
}
fout << ret << endl;
}
int main() {
fin >> n;
for(int i=1;i<=n;i++){
fin >> v[i];
}
fin >> m;
for(int i=1;i<=m;i++){
fin >> query >> x;
if(query == 0)
solve1();
else if(query == 1)
solve2();
else solve3();
}
return 0;
}