Cod sursa(job #1536229)

Utilizator sulzandreiandrei sulzandrei Data 25 noiembrie 2015 20:44:31
Problema Cautare binara Scor 100
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 = 1 ; 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) -v-1;
                if ( it <= n && it>=1 && v[it] ==x)
                 out<<it<<'\n';
                else
                    out<<"-1\n";

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

    }

    return 0;
}