Pagini recente » Infoarena Monthly 2012 - concursul comunitatii, Editia I | Infoarena Monthly 2012 - concursul comunitatii, Editia I | Infoarena Monthly 2012 - concursul comunitatii, Editia I | Cod sursa (job #605364) | Cod sursa (job #3240645)
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> arr;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
fin >> n;
arr.resize(n);
for (int i = 0; i < n; ++i) {
fin >> arr[i];
}
fin >> m;
while (m--) {
int op, num;
fin >> op >> num;
if (op == 0) {
auto it = upper_bound(arr.begin(), arr.end(), num);
if (it == arr.begin() || *(it - 1) != num) {
fout << "-1";
} else {
fout << it - arr.begin();
}
} else if (op == 1) {
auto it = upper_bound(arr.begin(), arr.end(), num);
fout << it - arr.begin();
} else if (op == 2) {
auto it = lower_bound(arr.begin(), arr.end(), num);
fout << it - arr.begin() + 1;
}
fout << "\n";
}
return 0;
}