Pagini recente » Cod sursa (job #2363360) | Cod sursa (job #972847) | Cod sursa (job #236558) | Cod sursa (job #1257211) | Cod sursa (job #2758813)
#include <fstream>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;
int main()
{
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int N;
cin >> N;
vector<int> A;
vector<int>::iterator it;
for(int i = 0, x; i < N; ++i){
cin >> x;
A.push_back(x);
}
int Q;
cin >> Q;
for(int op, x, poz; Q > 0; --Q){
cin >> op >> x;
switch (op)
{
case 0:
it = upper_bound(A.begin(), A.end(), x);
if(it != A.end() && *(--it) == x)
cout << upper_bound(A.begin(), A.end(), x) - A.begin() << "\n";
else if(A[A.size() - 1] == x)
cout << A.size() << "\n";
else cout << -1 << "\n";
break;
case 1:
cout << lower_bound(A.begin(), A.end(), x + 1) - A.begin() << "\n";
break;
case 2:
cout << upper_bound(A.begin(), A.end(), x - 1) - A.begin() + 1 << "\n";
break;
default:
break;
}
}
cin.close();
cout.close();
return 0;
}