Cod sursa(job #1750414)

Utilizator razvandRazvan Dumitru razvand Data 30 august 2016 10:45:47
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100003];
int n;

int lwb(int x) {
    return lower_bound(v+1, v+n+1, x)-v;
}

int main() {

    in >> n;

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

    int q,x,y;
    in >> q;

    for(int i = 1; i <= q; i++) {

        in >> x >> y;

        if(x == 0) {
            int lw = lwb(y+1);
            if(lw == 1)
                out << "-1" << '\n';
            else if(v[lw-1] != y)
                out << "-1" << '\n';
            else
                out << lw-1 << '\n';
        } else if(x == 1) {
            int lw = lwb(y+1);
            if(lw == 1)
                out << lw << '\n';
            else
                out << lw-1 << '\n';
        } else {
            int lw = lwb(y);
            out << lw << '\n';
        }

    }

    return 0;
}