Cod sursa(job #2348705)

Utilizator StefanBadBadila Stefam StefanBad Data 19 februarie 2019 21:48:19
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.5 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    long long int v[100005],n,m,i,caut,x,li,ls,mij;
    ifstream fin("cautbin.in");
    ofstream fout("cautbin.out");
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>v[i];
    }
    fin>>m;
    for(i=1;i<=m;i++)
    {
        fin>>caut;
        fin>>x;
        if(caut==0)
        {
            li=1;
            ls=n;
            while(li<=ls)
            {
                mij=(li+ls)/2;
                if(x >= v[mij])
                    li=mij+1;
                else
                    ls=mij-1;
            }
            if(v[mij] > x)
                mij--;
            if(v[mij]==x)
                fout<<mij<<endl;
        }
        if(caut==1)
        {
            li=1;
            ls=n;
            while(li<ls)
            {
                mij=(li+ls)/2;
                if(x >= v[mij])
                    li=mij+1;
                else
                    ls=mij;
            }
            if(v[mij] > x)
                mij--;
            fout<<mij<<endl;
        }
        if(caut==2)
        {
            li=1;
            ls=n;
            while(li<ls)
            {
                mij=(li+ls)/2;
                if(x > v[mij])
                    li=mij+1;
                else
                    ls=mij;
            }
            if(v[mij] < x)
                mij++;
            fout<<mij<<endl;
        }
    }
    fin.close();fout.close();
    return 0;
}