Cod sursa(job #2276649)

Utilizator r00t_Roman Remus r00t_ Data 5 noiembrie 2018 08:44:36
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <fstream>

using namespace std;

ifstream fin("cautbin.in");
ofstream fout("cautbin.out");

int n,a,m;
vector<int>v1;

int main()
{
    fin>>n;
    for(int i=0; i<n; i++){
        fin>>a;
        v1.push_back(a);
    }
    int x,tp;
    fin>>m;
    for(int i=0; i<m; i++){
        fin>>tp>>x;
        vector<int>::iterator low,upp;
        low = upper_bound(v1.begin(), v1.end(), x);
        upp = lower_bound(v1.begin(), v1.end(), x);

        if(tp == 0){
                bool bs;
            bs = binary_search(v1.begin(), v1.end(), x);
            if(bs != 0){
                fout<<(low - v1.begin())<<'\n';
            }else fout<<-1<<'\n';
        }

        if(tp == 1){
            fout<<(low - v1.begin())<<'\n';
        }
        if(tp == 2)
            fout<<(upp-v1.begin())+1<<'\n';
    }

    return 0;
}