Cod sursa(job #2303692)

Utilizator AdelaCorbeanuAdela Corbeanu AdelaCorbeanu Data 16 decembrie 2018 19:04:31
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 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;
        if (x==0) {
            int b = upper_bound(v+1,v+n+1,y)-v-1;
            if (b<=n && b>=1 && v[b]==y) fout << b << endl;
            else fout << -1 << endl;
        }
        else if (x==1) fout << lower_bound(v+1,v+n+1,y+1)-v-1 << endl;
        else fout << upper_bound(v+1,v+n+1,y-1)-v << endl;
    }
    return 0;
}