Cod sursa(job #2303682)

Utilizator AdelaCorbeanuAdela Corbeanu AdelaCorbeanu Data 16 decembrie 2018 18:55:16
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>
using namespace std;
int n, x, y, m, v[100011];
int main()
{
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin >> n;
    for (int i=1;i<=n;i++) {
        fin >> v[i];
    }
    fin >> m;
    for (int i=1;i<=m;i++) {
        fin >> x >> y;
        int c = binary_search(v+1,v+n+1,y);
        if (x!=2) {
            if (c==0 && x==0) fout << -1 << endl;
            else if (c==1) fout << (upper_bound(v+1,v+n+1,y) - v)-1 << endl;
            else fout << (lower_bound(v+1,v+n+1,y) - v) << endl;
        }
        else {
            fout << upper_bound(v+1,v+n+1,y-1)-v << endl;
        }
    }
    return 0;
}