Pagini recente » Cod sursa (job #254207) | Cod sursa (job #2720816) | Cod sursa (job #2442059) | Cod sursa (job #169193) | Cod sursa (job #2645111)
#include <bits/stdc++.h>
using namespace std;
int32_t main()
{
ios::sync_with_stdio(false), cin.tie(nullptr);
freopen("cautbin.in", "r", stdin);
freopen("cautbin.out", "w", stdout);
int n; cin >> n;
vector<int> v(n);
for (auto &it : v) cin >> it;
int m; cin >> m;
while (m--) {
int x, q; cin >> q >> x;
if (q == 0) {
cout << (binary_search(v.begin(), v.end(), x) ? upper_bound(v.begin(), v.end(), x) - v.begin() : -1) << '\n';
} else if (q == 1) {
int l = 0, r = n-1, it = 50, ans = 0;
while (it--) {
int mid = (l + r) / 2;
if (v[mid] >= x){
if (v[mid] == x) ans = max(ans, x);
r = mid;
} else {
l = mid;
}
}
cout << ans + 1 << '\n';
} else {
cout << lower_bound(v.begin(), v.end(), x) - v.begin() + 1 << '\n';
}
}
return 0;
}