Pagini recente » Cod sursa (job #226305) | Cod sursa (job #2284960) | Cod sursa (job #139322) | Cod sursa (job #2429517) | Cod sursa (job #1240233)
#include <iterator>
#include <fstream>
#include <algorithm>
using namespace std;
int main () {
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n;
fin >> n;
vector<int> v;
copy_n( istream_iterator<int>(fin),
n,
back_inserter(v));
int q, op, val;
for (fin >> q; q; --q) {
fin >> op >> val;
switch (op) {
case 0: {
auto it = upper_bound(v.begin(), v.end(), val);
if (*--it == val)
fout << it - v.begin() + 1 << '\n';
else
fout << "-1\n";
}
break;
case 1: {
auto it = upper_bound(v.begin(), v.end(), val);
fout << it - v.begin() << '\n';
}
break;
case 2: {
auto it = lower_bound(v.begin(), v.end(), val);
fout << it - v.begin() + 1 << '\n';
}
break;
}
}
return 0;
}