Cod sursa(job #1310289)

Utilizator nbogdan1Bogdan Noana nbogdan1 Data 6 ianuarie 2015 17:38:27
Problema Cautare binara Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.78 kb
#include <fstream>

using namespace std;
ifstream f("cautbin.in");
ofstream g("cautbin.out");
int n,m,i,x,op,st,dr,mij,sol,v[100001];
int main()
{
    f >>n;
    for (i=1;i<=n;i++)
     f >>v[i];
    f>>m;
    for (i=1;i<=m;i++)
     {
         f>>op>>x;


          if (op==0)
          {
              st=1;
              dr=n;
              sol=-1;
              while (st<=dr)
                {
                   mij=(st+dr)/2;
                    if (x==v[mij])
                       {
                         sol=mij;
                         st=mij+1;
                       }
                    else
                        if(x<v[mij])
                           dr=mij-1;
                         else
                            st=mij+1;
                }

                  g<<sol<<'\n';
                continue;

          }
          if (op==1){

              st=1;
              dr=n;
              sol=-1;
              while (st<=dr)
              {
                  mij=(st+dr)/2;
                  if (x>=v[mij])
                   {
                        sol=mij;
                        st=mij+1;

                   }
                   else
                    dr=mij-1;
              }
              g<<sol<<'\n';

             continue;
          }
           if (op==2)
           {
               st=1;
               dr=n;sol=-1;
               while (st<=dr)
               {
                   mij=(st+dr)/2;
                   if (x<=v[mij])
                     {
                         sol=mij;
                         dr=mij-1;
                     }
                    else
                       st=mij+1;
               }
               g<<sol<<'\n';

           }

     }
    return 0;
}