Pagini recente » Cod sursa (job #1523125) | Cod sursa (job #1724335) | Cod sursa (job #1711088) | Cod sursa (job #849889) | Cod sursa (job #2892138)
#include <bits/stdc++.h>
using namespace std;
const string fisier = "cautbin";
ifstream fin (fisier + ".in");
ofstream fout (fisier + ".out");
void test_case() {
int n; fin >> n;
vector<int>v(n + 1);
for (auto &x : v){
fin >> x;
}
int q; fin >> q;
while (q--){
int p , x; fin >> p >> x;
if (p == 0){
int l = 0 , r = n - 1 , ans = n - 1;
while (l <= r){
int mid = (l + r) / 2;
if (v[mid] > x){
ans = mid;
r = mid - 1;
}
else{
l = mid + 1;
}
}
if (ans - 1 >= 0 && v[ans - 1] == x){
fout << ans << '\n';
}
else{
fout << -1 << '\n';
}
}
if (p == 1){
int l = 0 , r = n - 1 , ans = n - 1;
while (l <= r){
int mid = (l + r) / 2;
if (v[mid] > x){
ans = mid;
r = mid - 1;
}
else{
l = mid + 1;
}
}
fout << ans << '\n';
}
if (p == 2){
int l = 0 , r = n - 1;
while (l <= r){
int mid = (l + r) / 2;
if (v[mid] > x){
r = mid - 1;
}
else{
l = mid + 1;
}
}
fout << r + 1 << '\n';
}
}
}
int main(){
ios_base::sync_with_stdio(false);
fin.tie(NULL);
int tests = 1;
for (int tc=0; tc<tests; ++tc) {
test_case();
}
}