Pagini recente » Cod sursa (job #2255756) | Cod sursa (job #2254705) | Cod sursa (job #180375) | Cod sursa (job #2479364) | Cod sursa (job #2314775)
#include <fstream>
#include <algorithm>
#define NMAX 100010
using std::lower_bound;
using std::upper_bound;
std::ifstream fin("cautbin.in");
std::ofstream fout("cautbin.out");
int n, m;
int v[NMAX];
int main() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
fin >> m;
for (int i = 0; i < m; i++) {
int x, y;
fin >> x >> y;
if (!x) {
int pos = upper_bound(v + 1, v + n + 1, y) - v - 1;
if (pos == n && v[n] != y)
fout << "-1\n";
else
fout << pos << '\n';
}
else if (x == 1)
fout << upper_bound(v + 1, v + n + 1, y + 1) - v - 1 << '\n';
else
fout << lower_bound(v + 1, v + n + 1, y - 1) - v << '\n';
}
fout.close();
return 0;
}