Cod sursa(job #1275843)

Utilizator icepinPredi Dragos icepin Data 25 noiembrie 2014 18:09:23
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.69 kb
#include <fstream>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int n,i,m,x,a,b,v[1001],st,dr,mid;

int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>x;
        v[i]=x;
    }
    fin>>m;

    for(i=1; i<=m; i++)
    {
        fin>>a;
        fin>>b;

        if(a==0)
        {
            st=1;
            dr=n;
            mid=(st+dr)/2;
            while(st<=dr)
            {
                if(v[mid]<=b)
                {
                    st=mid+1;
                    mid=(st+dr)/2;
                }
                else
                {
                    dr=mid-1;
                    mid=(st+dr)/2;
                }
            }


            fout<<dr<<"\n";

        }

        if(a==1)
        {
            st=1;
            dr=n;
            mid=(st+dr)/2;

            while(st<=dr)
            {
                if(v[mid]<=b)
                {
                    st=mid+1;
                    mid=(st+dr)/2;
                }
                else
                {
                    dr=mid-1;
                    mid=(st+dr)/2;
                }
            }

            fout<<dr<<"\n";
        }

        if(a==2)
        {
            st=1;
            dr=n;
            mid=(st+dr)/2;

            while(st<=dr)
            {
                if(v[mid]<b)
                {
                    st=mid+1;
                    mid=(st+dr)/2;
                }
                else
                {
                    dr=mid-1;
                    mid=(st+dr)/2;
                }
            }

            fout<<st;
        }

    }
    return 0;
}