Cod sursa(job #3336726)

Utilizator ligmasigmaolimpiadaVlad Bratucu ligmasigmaolimpiada Data 25 ianuarie 2026 15:49:53
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#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;
}