Cod sursa(job #2587221)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 22 martie 2020 14:50:34
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

int main () {
    ifstream fin ("cautbin.in");
    ofstream fout ("cautbin.out");
    vector <int> v;

    int n, x;
    fin >> n;
    for (; n; n--) {
        fin >> x;
        v.push_back(x);
    }

    int m, key;
    fin >> m;
    for (; m; m--) {
        fin >> key >> x;
        switch (key) {
        case 0: {
            if (!binary_search(v.begin(), v.end(), x))
                fout << -1 << '\n';
            else
                fout << upper_bound(v.begin(), v.end(), x)-v.begin() << '\n';
            }
            break;
        case 1:
            fout << lower_bound(v.begin(), v.end(), x+1)-v.begin() << '\n';
            break;
        default:
            fout << upper_bound(v.begin(), v.end(), x-1)-v.begin()+1 << '\n';
            break;
        }
    }
    return 0;
}