Cod sursa(job #2407716)

Utilizator PaterucAPetruc Andrei Stefan PaterucA Data 17 aprilie 2019 10:24:03
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;

ifstream inf("cautbin.in");
ofstream outf("cautbin.out");

int n, q, t, c;
vector<int> v;

int main()
{
    inf>>n;
    for(int i=1; i<=n; i++)
    {
        inf>>c;
        v.push_back(c);
    }
    inf>>q;
    for(;q;q--)
    {
        inf>>t>>c;
        if(t==0)
        {
            auto aux=upper_bound(begin(v), end(v), c)-1;
            if(v[aux-begin(v)]!=c)
                outf<<-1;
            else
                outf<<aux-begin(v)+1;
            outf<<'\n';
        }
        else if(t==1)
        {
            outf<<upper_bound(begin(v),end(v), c)-begin(v)<<'\n';
        }
        else
        {
            outf<<lower_bound(begin(v), end(v), c)-begin(v)+1<<'\n';
        }

    }
    return 0;
}