Cod sursa(job #2284631)

Utilizator bmarcuBogdan Marcu bmarcu Data 17 noiembrie 2018 12:08:09
Problema Cautare binara Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.33 kb
#include <fstream>
using namespace std;
int n,i,j,ls,ld,ok,v[100001],x,c,m,mij;
ifstream cin ("cautbin.in");
ofstream cout ("cautbin.out");
int main()
{
    cin>>n;
    for (i=1;i<=n;i++)
        cin>>v[i];
        
    cin>>m;
    for (j=1;j<=m;j++)
    {
        ls=1;
        ld=n;
        cin>>c>>x;
        if (c==1)
        {
            while (ls!=ld)
            {
                mij=ls+ld+1;
                mij/=2;
                if (v[mij]<=x)
                {
                    ls=mij;
                }
                else ld=mij-1;
            }
            cout<<ls<< endl;
        }
        if (c==0)
        {
             while (ls!=ld)
            {
                mij=ls+ld+1;
                mij/=2;
                if (v[mij]<=x)
                {
                    ls=mij;
                }
                else ld=mij-1;
            }
            if (v[ls]==x)
                cout<<ls<< endl;
            else cout<<"-1" << endl;
        }
        if (c==2)
        {
            while (ls!=ld)
            {
                mij=ls+ld;
                mij/=2;
                if (v[mij]>=x)
                {
                    ld=mij;
                }
                else ls=mij+1;
            }
            cout<<ls<< endl;
        }
    }
    return 0;
}