Cod sursa(job #1577517)

Utilizator AnduB08Boldisor Andu AnduB08 Data 23 ianuarie 2016 15:22:15
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.28 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,st,dr,i,mij,v[100010],a,b;
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
    {
        f>>v[i];
    }
    f>>m;
    for(i=1;i<=m;++i)
    {
        f>>a>>b;
        st=1;
        dr=n;
        if(a==0)
        {
            while(st<=dr)
            {
            mij=(st+dr)/2;
            if(v[mij]<=b)
            {
                st=mij+1;
            }
            else
                dr=mij-1;
            }
            if(v[dr]==b)
            {
                g<<dr<<"\n";
            }
            else
                g<<-1<<"\n";
        }
        if(a==1)
        {
            while(st<=dr)
            {
                mij=(st+dr)/2;

            if(v[mij]<=b)
            {
                st=mij+1;
            }
            else
                dr=mij-1;
            }
            g<<dr<<"\n";
        }
        if(a==2)
        {
            while(st<=dr)
            {
                mij=(st+dr)/2;
                if(v[mij]>=b)
                {
                    dr=mij-1;
                }
                else
                   st=mij+1;
            }
            g<<st<<"\n";
        }
    }
    return 0;
}