Cod sursa(job #1385302)

Utilizator cautionPopescu Teodor caution Data 11 martie 2015 20:58:00
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#include <algorithm>
using namespace std;
long v[100005];
int main()
{
    ifstream in("cautbin.in");
    ofstream out("cautbin.out");
    long n, m, a, b, aux;
    in>>n;
    for(long i=0; i<n; ++i) in>>v[i];
    in>>m;
    for(long i=0; i<m; ++i)
    {
        in>>a>>b;
        switch(a)
        {
        case 0:
            aux=upper_bound(v, v+n, b)-v;
            if(v[aux-1]==b) out<<aux<<'\n';
            else out<<"-1\n";
        break;
        case 1: out<<upper_bound(v, v+n, b)-v<<'\n';
        break;
        case 2: out<<lower_bound(v, v+n, b)-v+1<<'\n';
        break;
        }
    }
    in.close(); out.close();
    return 0;
}