Cod sursa(job #1952493)

Utilizator matystroiaStroia Matei matystroia Data 4 aprilie 2017 10:30:41
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;

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

const int N=1e5+5;

int n, m, x;
vector<int> v;

int main()
{
    fin>>n;
    for(int i=0;i<n;++i)
        fin>>x, v.push_back(x);

    fin>>m;
    for(int i=0;i<m;++i)
    {
        int op, x;
        fin>>op>>x;

        if(op==0)
        {
            vector<int>::iterator it=upper_bound(v.begin(), v.end(), x);
            if(*(it-1)!=x)fout<<-1<<'\n';
            else fout<<it-v.begin();
        }
        else if(op==1)
        {
            vector<int>::iterator it=upper_bound(v.begin(), v.end(), x);
            fout<<it-v.begin();
        }
        else if(op==2)
        {
            vector<int>::iterator it=lower_bound(v.begin(), v.end(), x);
            fout<<it-v.begin()+1;
        }

        fout<<'\n';
    }

    return 0;
}