Cod sursa(job #1256634)

Utilizator ZimmyZimmermann Erich Zimmy Data 6 noiembrie 2014 18:15:49
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int a[100010],n,m,i,j,x,c,lo,hi,mi;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++)fin>>a[i];
    fin>>m;
    for(;m;m--)
    {
        fin>>c>>x;
        //i=(int)(lower_bound(a+1,a+n+1,x)-a);
        //j=(int)(upper_bound(a+1,a+n+1,x)-a);
        if(c<=1)
        {
            for(lo=0,hi=n+1;hi-lo>1;)
            {
                mi=(lo+hi)/2;
                if(a[mi]<=x)lo=mi;
                else hi=mi;
            }
            if(c==0&&a[lo]!=x)fout<<-1<<'\n';
            else fout<<lo<<'\n';
            continue;

            //if(i==j)fout<<-1<<'\n';
            //else fout<<j-1<<'\n';
        }
        for(lo=0,hi=n+1;hi-lo>1;)
        {
            mi=(lo+hi)/2;
            if(a[mi]<x)lo=mi;
                else hi=mi;
        }
        fout<<hi<<'\n';


    }
    return 0;
}