Pagini recente » Cod sursa (job #56485) | Cod sursa (job #1563760) | Borderou de evaluare (job #1036177) | Cod sursa (job #1839924) | Cod sursa (job #2669020)
#include <bits/stdc++.h>
using namespace std;
#define STOP fout.close(); exit(EXIT_SUCCESS);
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
///***********************
const int NMAX = 1e5 + 3;
int n, m, v[NMAX];
int main() {
fin >> n;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (fin >> m; m; m--) {
int op, x;
fin >> op >> x;
if (!op) {
int p = upper_bound(v + 1, v + n + 1, x) - v - 1;
if (0 <= p && p <= n && v[p] == x)
fout << p;
else
fout << -1;
} else if (op == 1) {
int p = lower_bound(v + 1, v + n + 1, x + 1) - v - 1;
if (1 <= p && p <= n && v[p] == x)
fout << p;
else
fout << -1;
} else {
int p = lower_bound(v + 1, v + n + 1, x) - v;
if (1 <= p && p <= n && v[p] == x)
fout << p;
else
fout << -1;
}
fout << '\n';
}
STOP
}