Pagini recente » Borderou de evaluare (job #1569708) | Borderou de evaluare (job #2367723) | Cod sursa (job #1926907) | Cod sursa (job #3268267) | Cod sursa (job #1412715)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int N, M;
vector<int> v;
int main() {
fin >> N;
v.resize(N);
for (int &i : v)
fin >> i;
fin >> M;
while (M--) {
int t, val;
fin >> t >> val;
if (t == 0) {
auto it = upper_bound(v.begin(), v.end(), val);
if (it == v.begin() || *(--it) != val)
fout << "-1\n";
else
fout << it - v.begin() + 1 << "\n";
} else if (t == 1) {
fout << upper_bound(v.begin(), v.end(), val) - v.begin() << "\n";
} else {
fout << lower_bound(v.begin(), v.end(), val) - v.begin() + 1 << "\n";
}
}
return 0;
}