Pagini recente » Cod sursa (job #1367053) | Cod sursa (job #3239169) | Cod sursa (job #1015129) | Cod sursa (job #2273167) | Cod sursa (job #2758812)
#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
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;
}