Cod sursa(job #1828631)

Utilizator teodorgTeodor G teodorg Data 13 decembrie 2016 17:55:22
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,i,c,x,lo,hi,mi,v[100010];
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    for(;m;m--)
    {
        f>>c>>x;
        if(c==2)
        {
            for(lo=0,hi=n+1;lo<hi-1;)
            {
                mi=(lo+hi)/2;
                if(v[mi]<x)
                    lo=mi;
                else
                    hi=mi;
            }
            g<<hi<<'\n';
        }
        else
        {
            for(lo=0,hi=n+1;lo<hi-1;)
            {
                mi=(lo+hi)/2;
                if(v[mi]<=x)
                    lo=mi;
                else
                    hi=mi;
            }
            if(c==0&&v[lo]!=x)
                lo=-1;
            g<<lo<<'\n';
        }

    }

    return 0;
}