Cod sursa(job #1536220)

Utilizator sulzandreiandrei sulzandrei Data 25 noiembrie 2015 20:37:16
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
int v[100003];
int main()
{

    int n,m;
    in>> n;
    for(int i = 0 ; i < n ; i ++)
        in>>v[i];
    in>>m;
    int op,x;
    while(m--)
    {
        in>>op>>x;
       if(op == 0)
        {
            auto it = upper_bound(v,v+n-1,x);
                if ( *it == v[it-v] && x<=v[n-1] && x>=v[0])
                 out<<it-v<<'\n';
                else
                    out<<"-1\n";

        }
        if(op == 1)
        {
            auto it = upper_bound(v,v+n-1,x);
            out<<it-v<<'\n';
        }
        if(op == 2)
        {
            auto it = lower_bound(v,v+n-1,x);
            out<<it-v<<'\n';
        }

    }

    return 0;
}