Pagini recente » Cod sursa (job #1933201) | Cod sursa (job #2375330) | Rating Radu Portase (radu.portase) | oni-2009-x | Cod sursa (job #1425580)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int N, M;
vector<int> v;
int main() {
f >> N;
v.resize(N);
for (int &i : v)
f >> i;
f >> M;
while (M--) {
int t, val;
f >> t >> val;
if (t == 0) {
auto it = upper_bound(v.begin(), v.end(), val);
if (it == v.begin() || *(--it) != val)
g << "-1\n";
else
g << it - v.begin() + 1 << "\n";
} else if (t == 1) {
g << upper_bound(v.begin(), v.end(), val) - v.begin() << "\n";
} else {
g << lower_bound(v.begin(), v.end(), val) - v.begin() + 1 << "\n";
}
}
return 0;
}