Pagini recente » Cod sursa (job #1478389) | Cod sursa (job #636118) | Cod sursa (job #2646384) | Cod sursa (job #2326587) | Cod sursa (job #3152110)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <unordered_map>
#include <set>
#include <queue>
#include <stack>
#include <deque>
#include <iomanip>
#include <vector>
#include <bitset>
#pragma GCC optimize("O3")
#define fi first
#define se second
#define pb push_back
#define pf push_front
using namespace std;
ifstream fin ("cautbin.in");
ofstream fout ("cautbin.out");
typedef long long ll;
const ll Nmax=1e5+5, inf=1e9+5;
using pii=pair<int, int>;
int n, v[Nmax];
int main()
{
fin>>n;
for (int i=0; i<n; i++)
fin>>v[i];
char ch; int nr;
int k;
fin>>k;
for (int i=0; i<k; i++){
fin>>ch>>nr;
int l=0, r=n-1, mij, sol=0;
if (ch=='0'){
while (l<=r){
mij=(l+r)/2;
if (v[mij]<=nr){
sol=mij;
l=mij+1;
}
else r=mij-1;
}
if (v[sol]!=nr)
sol=-2;
}
else if(ch=='1'){
while (l<=r){
mij=(l+r)/2;
if (v[mij]<=nr){
sol=mij;
l=mij+1;
}
else r=mij-1;
}
}
else{
while (l<=r){
mij=(l+r)/2;
if (v[mij]>=nr){
sol=mij;
r=mij-1;
}
else l=mij+1;
}
}
fout<<sol+1<<'\n';
}
return 0;
}