Cod sursa(job #1733268)

Utilizator xSliveSergiu xSlive Data 24 iulie 2016 11:23:29
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <algorithm>
#define NMAX 100010
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int v[NMAX];
int n,m;
int poz;
int main()
{
    int op,op1;
    f >> n;
    for(int i=1;i<=n;i++)
        f >> v[i];
    f >> m;

    for(int i=1;i<=m;i++){
        f >> op >> op1;
        if(op==0){
            poz = upper_bound(v+1,v+n+1,op1) - v - 1;
            if(poz >=1 && poz <= n && v[poz] == op1)
                g << poz << '\n';
            else g << -1 << '\n';
        }
        else if(op == 1){
            g << lower_bound(v+1,v+n+1,op1+1)- v - 1 << '\n';
        }
        else g << upper_bound(v+1,v+n+1,op1-1) - v << '\n';
    }
    return 0;
}