Pagini recente » Cod sursa (job #1360709) | Cod sursa (job #2122613) | Cod sursa (job #2322388) | Cod sursa (job #51308) | Cod sursa (job #3245366)
#include <bits/stdc++.h>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int n, m, l, r;
int main() {
in >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
in >> v[i];
}
in >> m;
while (m--) {
in >> l >> r;
switch(l) {
case 0: {
auto pos0 = upper_bound(v.begin(), v.end(), r);
--pos0;
if (*pos0 != r || v[0] > r) {
out << -1 << '\n';
break;
}
out << pos0 - v.begin() + 1<< '\n';
break;
}
case 1: {
auto pos1 = upper_bound(v.begin(), v.end(), r);
out << pos1 - v.begin() << '\n';
break;
}
case 2: {
auto pos2 = lower_bound(v.begin(), v.end(), r);
out << pos2 - v.begin() + 1;
break;
}
default:
break;
}
}
return 0;
}