Cod sursa(job #2284303)

Utilizator tudor10Serban Tudor Alexandru tudor10 Data 17 noiembrie 2018 10:25:47
Problema Cautare binara Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.32 kb
#include <fstream>

using namespace std;
int n,i,j,st,dr,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++)
    {
        st=1;
        dr=n;
        cin>>c>>x;
        if (c==1)
        {
            while (st!=dr)
            {
                mij=st+dr+1;
                mij/=2;
                if (v[mij]<=x)
                {
                    st=mij;
                }
                else dr=mij-1;
            }
            cout<<st<<'\n';
        }
        if (c==0)
        {
             while (st!=dr)
            {
                mij=st+dr+1;
                mij/=2;
                if (v[mij]<=x)
                {
                    st=mij;
                }
                else dr=mij-1;
            }
            if (v[st]==x)
                cout<<st<<'\n';
            else cout<<"-1\n";
        }
        if (c==2)
        {
            while (st!=dr)
            {
                mij=st+dr;
                mij/=2;
                if (v[mij]>=x)
                {
                    dr=mij;
                }
                else st=mij+1;
            }
            cout<<st<<'\n';
        }
    }
    return 0;
}