Cod sursa(job #1869720)

Utilizator andreitabaraandrei2004 andreitabara Data 6 februarie 2017 09:21:11
Problema Cautare binara Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb

#include <fstream>
#include <algorithm>
using namespace std;
ifstream in ("cautbin.in");
ofstream out ("cautbin.out");
int main()
{
    long long n,x,i,v[100001],p,m,a,b;
    in>>n;
    for(i=1; i<=n; i++)in>>v[i];
    in>>m;

    for(i=1; i<=m; i++)
    {
        in>>a>>b;
        x=b;
        if(a==0)
        {
            p=upper_bound(v+1,v+n+1,x)-v;
            if(v[p-1]==x)out<<p-1<<endl;
            else
            {
                out<<-1<<endl;
            }
        }
        if(a==1)
        {
            p=upper_bound(v+1,v+n+1,x)-v;
            out<<p-1<<endl;
        }
        if(a==2)
        {

            p=lower_bound(v+1,v+n+1,x)-v;
            out<<p<<endl;
        }
    }
    return 0;
}