Cod sursa(job #2466620)

Utilizator masecla22marziali mattia masecla22 Data 2 octombrie 2019 19:00:39
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    freopen("cautbin.in","r",stdin);
    freopen("cautbin.out","w",stdout);
    std::vector<int> vec;
    int n;
    cin>>n;
    for(int i=0; i<n; i++)
    {
        int el;
        cin>>el;
        vec.push_back(el);
    }
    int m;
    cin>>m;
    for(int i=0; i<m; i++)
    {
        int tip,vals;
        cin>>tip;
        cin>>vals;
        if(tip==2)
        {
            int pos = (upper_bound(vec.begin(),vec.end(),vals-1)-vec.begin());
            cout<<pos+1<<endl;
        }
        if(tip==1)
        {
            int pos = (lower_bound(vec.begin(),vec.end(),vals+1)-vec.begin());
            cout<<pos<<endl;
        }
        if(tip==0)
        {
            int pos = (upper_bound(vec.begin(),vec.end(),vals)-vec.begin());
            if(pos==0 && vec[pos]!=vals)
                cout<<-1<<endl;
            else
                cout<<pos<<endl;
        }
    }



    return 0;
}