Cod sursa(job #2423039)

Utilizator GireadaOvidiuGireada Ovidiu GireadaOvidiu Data 20 mai 2019 17:54:52
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>

using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
const int N = 100010;
int n,q,c,v,i,x[N],caut0(),caut2(),lo,hi,mi;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
        f>>x[i];
    f>>q;
    for(; q; q--)
    {
        f>>c>>v;
        if(c==0)
        {
            i=caut0();
            if(x[i]==v)
                g<<i<<'\n';
            else
                g<<"-1\n";
        }
        else if(c==1)
            g<<caut0()<<'\n';
            else
                for(;;);
                //g<<caut2()<<'\n';
    }
    return 0;
}
int caut0()
{
    lo=1;
    hi=n+1;
    while(hi-lo>1)
    {
        mi=(lo+hi)/2;
        if(x[mi]<=v)
            lo=mi;
        else
            hi=mi;
    }
    return lo;
}
int caut2()
{
    lo=1;
    hi=n+1;
    while(hi-lo>1)
    {
        mi=(lo+hi)/2;
        if(x[mi]<v)
            lo=mi;
        else
            hi=mi;
    }
    return hi;
}