Cod sursa(job #1955769)

Utilizator ticozaurStratila Andrei ticozaur Data 6 aprilie 2017 10:56:44
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
vector<int> v;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,m,t,x;
int main()
{
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>x;
        v.push_back(x);
    }
    fin>>m;
    for(int i=1;i<=m;i++)
    {
        int up,low;
        fin>>t>>x;
        if(t==0){
            up = upper_bound (v.begin(), v.end(), x)- v.begin() ;
            if(v[up-1]==x)
                fout<<up<<'\n';
            else
                fout<<"-1\n";
        }
        else if(t==1){
            up = upper_bound (v.begin(), v.end(), x) - v.begin();
            fout<<up<<'\n';
        }
        else if(t==2){
            low = lower_bound (v.begin(), v.end(), x) - v.begin();
            fout<<low+1<<'\n';
        }
    }
    return 0;
}