Pagini recente » Monitorul de evaluare | Cod sursa (job #3326953) | Borderou de evaluare (job #1524254) | Cod sursa (job #1817192) | Cod sursa (job #3336726)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main()
{
long long N, M;
fin>>N;
vector<long long> a(N);
for (long long i=0; i<N; i++) {
fin>>a[i];
}
fin>>M;
for(long long i=0; i<M; i++){
int c;
long long x;
fin>>c>>x;
if(c==0){
auto didy=lower_bound(a.begin(), a.end(),x);
auto foid=upper_bound(a.begin(), a.end(),x);
if (didy==foid) {
fout<<-1<<endl;
}else{
fout<<(foid-a.begin())<<endl;
}
}else if(c==1) {
auto foid=upper_bound(a.begin(),a.end(),x);
fout<<(foid-a.begin())<<endl;
}else if(c==2) {
auto didy=lower_bound(a.begin(), a.end(), x);
fout<<(didy-a.begin()+1)<<endl;
}
}
return 0;
}