Cod sursa(job #1168352)

Utilizator cristina_borzaCristina Borza cristina_borza Data 8 aprilie 2014 09:43:11
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,a[100001],i,ex,v,m,x,poz;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x;
        a[i]=x;
    }
    fin>>m;
    for(i=1;i<=m;i++)
    {
        fin>>ex>>x;
        if(ex==0)
        {
            poz=upper_bound(a+1,a+n+1,x)-a-1;
            if(a[poz]==x && poz<=n && poz>=1)
                fout<<poz<<'\n';
            else
                fout<<-1<<'\n';
        }
        if(ex==1)
        {
            poz=upper_bound(a+1,a+n+1,x)-a-1;
            fout<<poz<<'\n';
        }
        if(ex==2)
        {
            poz=lower_bound(a+1,a+n+1,x)-a-1;
            if(a[poz]==x)
                fout<<poz<<'\n';
            else
                fout<<poz+1<<'\n';
        }
    }
}