Cod sursa(job #1431312)

Utilizator TimoteiCopaciu Timotei Timotei Data 9 mai 2015 10:28:39
Problema Cautare binara Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 1.52 kb
#include<fstream>
#define nmax 100006
 using namespace std;
int n,m,intrebare,element,limita1,limita2,mij,poz,v[nmax];
int main()
{
    ifstream f("cautbin.in");
    ofstream g("cautbin.out");
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
        f>>m;
        for(int i=1;i<=m;i++)
        {
            f>>intrebare>>element;
            limita1=1;
          limita2=n;
            if(intrebare==0)
            {
                while(limita2-limita1!=1)
                {

                    mij=limita1+(limita2-limita1)/2;
                    if(element>=v[mij])limita1=mij;
                    else limita2=mij;
                }
                 mij=limita1+(limita2-limita1)/2;
                if(v[mij]==element)g<< mij<<"\n";
                else g<<"-1\n";

            }
            if(intrebare==1)
            {
                while(limita2-limita1!=1)
                {

                    mij=limita1+(limita2-limita1)/2;
                    if(element>=v[mij])limita1=mij;
                    else limita2=mij;
                }
                 mij=limita1+(limita2-limita1)/2;
                g<< mij<<"\n";


            }
            if(intrebare==2)
            {
                while(limita2-limita1!=1)
                {

                    mij=limita1+(limita2-limita1)/2;
                    if(element<=v[mij])limita2=mij;
                    else limita1=mij;
                }
                g<< limita2<<"\n";

            }

        }
    return 0;
}