Cod sursa(job #1396558)

Utilizator nicholascantarNicholas David Cantar Gogitidze nicholascantar Data 22 martie 2015 18:06:26
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>

using namespace std;
long n,m,v[100001],i,j,poz1,poz2,k,x,y,p;
int main()
{
    ifstream fin ("cautbin.in");
    ofstream fout ("cautbin.out");
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    fin>>p;
    for (k=1;k<=p;k++)
    {
        fin>>x>>y;
        if (x==0)
        {
            i=1;
            j=n;
            while (i<=j)
            {
               m=(i+j)/2;
               if (v[m]<=y) i=m+1;
               else j=m-1;
            }
            if (v[m]>y) m--;
            if (v[m]==y) fout<<m<<'\n';
            else fout<<-1<<'\n';
        }
        else if (x==1)
        {
            i=1;
            j=n;
            while (i<=j)
            {
              m=(i+j)/2;
              if (v[m]<=y) i=m+1;
              else j=m-1;
            }
           if (v[m]>y) m--;
           fout<<m<<'\n';
        }
        else
        {
            i=1;j=n;
            while (i<=j)
            {
               m=(i+j)/2;
               if (v[m]<y) i=m+1;
               else j=m-1;
            }
            if (v[m]<y) m++;
            fout<<m<<'\n';
        }
    }
    return 0;
}