Cod sursa(job #2502889)

Utilizator CatalinaPHOVornicu Catalina-Cristina CatalinaPHO Data 1 decembrie 2019 19:26:51
Problema Cautare binara Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.38 kb
#include <fstream>
using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
long long n,m,b[1000001],i,x,y,st,dr,mij,gasit;
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>b[i];
    f>>m;
    for(i=1;i<=m;i++)
    {
        f>>x>>y;
        st=1;
        dr=n;
        gasit=0;
        while(st<=dr&&gasit==0)
        {
            mij=(st+dr)/2;
            if(b[mij]<y)
                st=mij+1;
            if(b[mij]>y)
                dr=mij-1;
            if(x==0)
            {
                if(b[mij]==y)
                    if(b[mij+1]==y)
                    st=mij+1;
                else
                    {
                    gasit=1;
                g<<mij<<"\n";
            }
            }
            if(x==1)
            {
                if(b[mij]==y)
                    if(b[mij+1]==y)
                    st=mij+1;
                else
                {
                    gasit=1;
                    g<<mij<<"\n";
                }
            }
            if(x==2)
            {
                if(b[mij]==y)
                    if(b[mij-1]==y)
                    dr=mij-1;
                else
                {
                    gasit=1;
                    g<<mij<<"\n";
                }
            }
        }
            if(gasit==0)
                g<<-1;
    }
    return 0;
}