Cod sursa(job #2364677)

Utilizator NOSCOPEPROKENDYMACHEAMACUMVREAU NOSCOPEPROKENDY Data 4 martie 2019 10:24:44
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda pregatire_cls9_ojiii Marime 1.15 kb
#include <fstream>



using namespace std;



ifstream f("cautbin.in");

ofstream g("cautbin.out");



long n,x[100010],i,m,a,b,poz;



int cb1(int val)

{

    int st,dr,p,m;

    dr=1;

    st=1;

    p=n;

    while(st<=p)

    {

        m=(st+p)/2;

        if(val>=x[m])

        {

            dr=m;

            st=m+1;

        }

        else

            p=m-1;

    }

    return dr;

}



int cb3(int val)

{

    int st,p,dr=-1,m;

    st=1;

    p=n;

    while(st<=p)

    {

        m=(st+p)/2;

        if(val<=x[m])

        {

            dr=m;

            p=m-1;

        }

        else

            st=m+1;

    }

    return dr;

}



int main()

{

    f>>n;

    for(i=1;i<=n;i++)

        f>>x[i];

    f>>m;

    for(i=1;i<=m;i++)

    {

        f>>a>>b;

        poz=cb1(b);

        if(a==0)

            if(x[poz]==b)

            g<<poz<<"\n";

        else

            g<<-1<<"\n";

        else

            if(a==1)

            g<<poz<<"\n";

        else

            g<<cb3(b)<<"\n";

    }

}