Mai intai trebuie sa te autentifici.

Cod sursa(job #2886656)

Utilizator Mihai_EduardMihai Eduard Mihai_Eduard Data 8 aprilie 2022 00:03:43
Problema Cautare binara Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>

using namespace std;

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

int N, M;
vector<int> v;

int main()
{
    fin>>N;
    v=vector<int>(N);
    for(int i=0;i<N;i++)
        fin>>v[i];
    int tip, x, poz;
    fin>>M;
    while(M--){
        fin>>tip>>x;
        if(tip==0){
            poz=upper_bound(v.begin(),v.end(),x)-v.begin()-1;
            if(poz>=0 and poz<N and v[poz]==x)
                fout<<poz+1<<'\n';
            else
                fout<<-1<<'\n';
        }
        else if(tip==1){
            poz=lower_bound(v.begin(),v.end(),x+1)-v.begin()-1;
            fout<<poz+1<<'\n';
        }
        else{
            poz=lower_bound(v.begin(),v.end(),x-1)-v.begin();
            fout<<poz+1<<'\n';
        }
    }

    fin.close();
    fout.close();
    return 0;
}