Cod sursa(job #1313391)

Utilizator asavoaeigeoAsavoaei Georgiana asavoaeigeo Data 10 ianuarie 2015 16:56:04
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <fstream>

using namespace std;
ifstream fin("cautbin.in");
ofstream fout("cautbin.out");
int v[100101];
int main()
{
    int n,m,tip,x,d,mij,s;
    fin>>n;
    for(int i=1;i<=n;i++) fin>>v[i];
    fin>>m;
    for(int i=1;i<=m;i++)
    {
       fin>>tip>>x;
       if(tip==0)
            { int s=1; d=n;
               while(s<=d )
                  {mij=(s+d)/2;
                   if(v[mij]<=x) s=mij+1;
                   else d=mij-1;
                  }
            mij=(s+d)/2;
            if(v[mij]>x) mij--;
            if(v[mij]==x) {fout<<mij<<"\n";}
            else  fout<<-1;
            }
     if(tip==1)
            { int s=1; d=n;
               while (s<d)
               {mij=(s+d)/2;
               if (v[mij]<=x) s=mij+1;
              else d=m;
               }
              mij=(s+d)/ 2;
              if(v[mij]>x) -- mij;
              fout<<mij<<"\n";
            }
     if(tip==2)
            {  s=1,d=n;
               while (s<d)
               {mij =(s + d)/2;
               if (v[mij]<x) s=mij+1;
              else d=mij;
                }

              mij=(s+d)/2;
              if (v[mij]<x) mij++;
              fout<<mij;     }
    }

    return 0;
}