Pagini recente » Cod sursa (job #420353) | Cod sursa (job #1713453) | Cod sursa (job #1064325) | Cod sursa (job #120095) | Cod sursa (job #2653060)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char const *argv[])
{
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int N; fin >> N;
vector<int> arr(N);
for (int i = 0; i < N; i++) {
fin >> arr[i];
}
int M; fin >> M;
for (int i = 0; i < M; ++i) {
int q, x;
fin >> q >> x;
vector<int>::iterator it;
switch (q) {
case 0:
it = upper_bound(arr.begin(), arr.end(), x);
if (it == arr.begin())
fout << -1;
else {
it--;
if (*it == x)
fout << it - arr.begin() + 1;
else
fout << -1;
}
break;
case 1:
it = upper_bound(arr.begin(), arr.end(), x) - 1;
fout << it - arr.begin() + 1;
break;
case 2:
it = lower_bound(arr.begin(), arr.end(), x);
fout << it - arr.begin() + 1;
break;
}
fout << '\n';
}
return 0;
}