Pagini recente » Cod sursa (job #3152420) | Cod sursa (job #1053723) | Cod sursa (job #1809440) | Borderou de evaluare (job #1330230) | Cod sursa (job #642554)
Cod sursa(job #642554)
#include <iostream>
#include <fstream>
#include <vector>
#include <complex>
#include <algorithm>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
void solve() {
int n;
in >> n;
int v[n + 1];
v[0] = -1;
int temp;
for (int i = 1; i <= n; ++i) {
in >> temp;
v[i] = temp;
}
sort(v + 1, v + n + 1);
int m;
in >> m;
int x, y;
while (m--) {
in >> x >> y;
int it;
switch(x) {
case 0:
it = upper_bound(v + 1, v + n + 1, y) - v - 1;
if (it >= 1 && it <= n && v[it] == y) {
out << it << endl;
} else {
out << -1 << endl;
}
break;
case 1:
it = lower_bound(v + 1, v + n + 1, y + 1) - v - 1;
out << it << endl;
break;
case 2:
it = upper_bound(v + 1, v + n + 1, y - 1) - v;
out << it << endl;
break;
}
}
}
int main() {
solve();
return 0;
}