Cod sursa(job #1936549)

Utilizator Tataru_AdelinTataru Adelin Tataru_Adelin Data 23 martie 2017 10:43:51
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int main()
{
    long n;
    fin>>n;
    vector <long> v(n);
    for(long i=0;i<n;i++)
        fin>>v[i];
    long q;
    fin>>q;
    long t,x;
    vector <long>::iterator poz;
    for(long a0=0;a0<q;a0++)
    {
        fin>>t>>x;
        if(t==0)
        {
            poz=upper_bound(v.begin(),v.end(),x);
            if(poz==v.end() && *(poz-1)!=x)
                fout<<-1<<'\n';
            else
                fout<<poz-v.begin()<<'\n';
        }
        if(t==1)
        {
             poz=lower_bound(v.begin(),v.end(),x+1);
             fout<<poz-v.begin()<<'\n';
        }
        if(t==2)
        {
            poz=upper_bound(v.begin(),v.end(),x-1);
            fout<<poz-v.begin()+1<<'\n';
        }



    }
    return 0;
}