Cod sursa(job #1878041)

Utilizator medicinedoctoralexandru medicinedoctor Data 13 februarie 2017 20:53:11
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

ifstream cin ("cautbin.in");
ofstream cout("cautbin.out");

vector <int> a;
int m,x,y;

void read()
{
    int n;
    cin >> n;
    a.resize(n);
    for (int i=0; i<a.size(); cin >> a[i++]);
}

main()
{
    read();
    vector <int> :: iterator i;
    cin >> m;
    for (; m ; m--)
    {
        cin >> x >> y;
        if (x==0)
        {
            if (binary_search(a.begin(),a.end(),y))
                cout << upper_bound(a.begin(),a.end(),y)-a.begin() << '\n';
                else cout << "-1\n";
        }
        if (x==1) cout << lower_bound(a.begin(), a.end(), y + 1) - a.begin() << '\n';
        if (x==2) cout << upper_bound(a.begin(), a.end(), y - 1) - a.begin()+1 << '\n';
    }
}