Pagini recente » Cod sursa (job #321332) | Cod sursa (job #2152184) | Cod sursa (job #2865313) | Cod sursa (job #479628) | Cod sursa (job #2743622)
#include <bits/stdc++.h>
using namespace std;
int main(){
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int n;
cin >> n;
vector<int> v(n + 1);
for(int i = 1; i <= n; i++)
cin >> v[i];
int m;
cin >> m;
for(int i = 1; i <= m; i++) {
int t, x;
cin >> t >> x;
int l = 1, r = n, ans = -1;
if(t == 0) {
while(l <= r) {
int mid = (l + r) / 2;
if(v[mid] > x)
r = mid - 1;
else {
if(v[mid] == x)
ans = mid;
l = mid + 1;
}
}
}
if(t == 1) {
while(l <= r) {
int mid = (l + r) / 2;
if(v[mid] > x)
r = mid - 1;
else {
ans = mid;
l = mid + 1;
}
}
}
if(t == 2) {
while(l <= r) {
int mid = (l + r) / 2;
if(v[mid] >= x) {
ans = mid;
r = mid - 1;
}
else
l = mid + 1;
}
}
cout << ans << '\n';
}
}