Cod sursa(job #1470094)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 10 august 2015 13:25:06
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <algorithm>
#include <fstream>
#define MAX 100015
using namespace std;
int n,a[MAX];
int main()
{
    int i,m,x,y;
    int *it;
    fstream f,g;
    f.open("cautbin.in", ios::in);
    g.open("cautbin.out",ios::out);
    f>>n;
    for (i = 1; i <= n ; i++)
        f>>a[i];
    f>>m;
    while (m--)
    {
        f>>x>>y;
        if ( x == 0 ){
            it = upper_bound(a + 1 , a + n + 1, y) ;
            it--;
            if (*it == y)
                g<<it-a<<"\n";
            else
                g<<"-1\n";

        }
        else if (x == 1){
            it = upper_bound(a + 1 , a + n + 1, y);
            cout<< *it;
            g<< it - a - 1 <<'\n';
        }
        else if (x == 2){
            it = lower_bound(a + 1 , a + n + 1, y);
            g<< it - a<<'\n';

        }
    }

}