Cod sursa(job #1591223)

Utilizator razvandRazvan Dumitru razvand Data 5 februarie 2016 21:50:25
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("cautbin.in");
ofstream out("cautbin.out");

long v[100003];

int main() {

    int n,k,t,a;
    in >> n;

    for(int i = 0; i < n; i++)
        in >> v[i];
    in >> k;

    for(int i = 0; i < k; i++) {

        in >> t >> a;

        if(t != 2) {

            int lw = upper_bound(v, v+n, a) - v;

            if(lw == n || (lw == 0 && v[lw] != a)) {

                out << "-1" << '\n';

            } else {

                out << lw << '\n';

            }

        } else {

            int lw = lower_bound(v, v+n, a) - v;

            out << lw << '\n';

        }

    }

    return 0;
}