Pagini recente » Monitorul de evaluare | Cod sursa (job #2682718) | Arhiva de probleme | Cod sursa (job #158980) | Cod sursa (job #1128380)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
vector< int > a;
int n, Q;
ifstream cin("cautbin.in");
ofstream cout("cautbin.out");
int main(){
cin >> n;
for(int i = 1; i <= n; ++i){
int X = 0;
cin >> X;
a.push_back(X);
}
for(cin >> Q; Q > 0; --Q){
int Tip, X, Ans;
cin >> Tip >> X;
if(Tip == 0){
Ans = upper_bound(a.begin(), a.end(), X) - a.begin();
if(a[Ans - 1] != X)
Ans = -1;
cout << Ans;
}
if(Tip == 1){
Ans = lower_bound(a.begin(), a.end(), X + 1) - a.begin();
cout << Ans;
}
if(Tip == 2){
Ans = upper_bound(a.begin(), a.end(), X - 1) - a.begin() + 1;
cout << Ans;
}
cout << '\n';
}
return 0;
}