Cod sursa(job #2648358)

Utilizator Albert_GAlbert G Albert_G Data 10 septembrie 2020 13:08:54
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include<bits/stdc++.h>
using namespace std;

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

vector <int> arr;

int main()
{
    int n;
    in>>n;
    for(int i = 0;i<n;i++)
    {
        int x;
        in>>x;
        arr.push_back(x);
    }
    int cate;
    in>>cate;
    for(int i=0;i<cate;i++)
    {
        int cer,num;
        in>>cer>>num;
        if(cer==0)
        {
            int pos = upper_bound(arr.begin(),arr.end(),num)-arr.begin()-1;
            if(arr[pos]==num)
            {
                out<<pos+1<<'\n';
            }
            else out<<-1<<'\n';
        }
        else if(cer == 1)
        {
            int pos = upper_bound(arr.begin(),arr.end(),num)-arr.begin();
            out<<pos<<'\n';
        }
        else
        {
            int pos = lower_bound(arr.begin(),arr.end(),num)-arr.begin()+1;
            out<<pos<<'\n';
        }

    }

    return 0;
}