Cod sursa(job #2284681)

Utilizator tudorvatcatudor vatca tudorvatca Data 17 noiembrie 2018 12:39:04
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.44 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("cautbin.in");
ofstream g("cautbin.out");

int main()
{
    int v[100001],n,m,i,j,rasp,ls,ld,mij,x,y;
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    f>>m;
    for(j=1;j<=m;j++)
    {
        f>>y>>x;
        ls=1;
        ld=n;
        if(y==0)
        {
            rasp=-1;
            while(ls<=ld)
            {
                mij=(ld+ls)/2;
                if(v[mij]>x)
                {
                    rasp=mij;
                    ld=mij-1;
                }
                else
                    ls=mij+1;
            }
            if(rasp==-1)
                g<<-1;
            else
                g<<rasp-1;
        }
        if(y==1)
        {
            while(ls<=ld)
            {
                mij=(ld+ls)/2;
                if(v[mij]>x)
                {
                    rasp=mij;
                    ld=mij-1;
                }
                else
                    ls=mij+1;
            }
            g<<rasp-1;
        }
        if(y==2)
        {
            while(ls<=ld)
            {
                mij=(ld+ls)/2;
                if(v[mij]>=x)
                {
                    rasp=mij;
                    ld=mij-1;
                }
                else
                    ls=mij+1;
            }
            g<<rasp;
        }
        g<<endl;
    }


    return 0;
}