Cod sursa(job #1581281)

Utilizator SmitOanea Smit Andrei Smit Data 26 ianuarie 2016 18:26:02
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;

int n,m,a[100003];

inline void Citire()
{
    int i,c,x,poz;
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin>>n;
    for(i=1;i<=n;++i)
        fin>>a[i];
    fin>>m;
    for(i=1;i<=m;++i)
    {
        fin>>c>>x;
        if(c==0)
        {
            poz=upper_bound(a+1,a+n+1,x)-a;
            poz--;
            if(poz>=1 && poz<=n && a[poz]==x)   fout<<poz<<"\n";
            else    fout<<"-1\n";
        }
        if(c==1)    fout<<lower_bound(a+1,a+n+1,x+1)-a-1<<"\n";
        if(c==2)    fout<<upper_bound(a+1,a+n+1,x-1)-a-1<<"\n";
    }
}

int main()
{
    Citire();
    return 0;
}