Cod sursa(job #1680742)

Utilizator irinapatularuPatularu Irina irinapatularu Data 9 aprilie 2016 00:38:10
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    int n, m, mode, value;
    vector<int> sir;
    vector<int>::iterator it;
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    f >> n;
    for(int i = 0; i < n; i++){
        f >> value;
        sir.push_back(value);
    }
    f >> m;
    for(int i = 0; i < m; i++){
        f >> mode >> value;
        if(mode  == 0){
            it = upper_bound(sir.begin(), sir.end(), value);
            if(it != sir.end())
                g << (it - sir.begin()) << '\n';
            else
                g << -1 << '\n';
        }

        if(mode == 1){
            it = lower_bound(sir.begin(), sir.end(), value + 1);
            g << (it - sir.begin()) << '\n';
        }
        if(mode == 2){
            it = upper_bound(sir.begin(), sir.end(), value - 1);
            g << (it - sir.begin()) + 1 << '\n';
        }
    }
    f.close();
    g.close();
    return 0;
}