Cod sursa(job #252402)

Utilizator jeanFMI - Petcu Ion Cristian jean Data 4 februarie 2009 13:20:01
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream.h>

int v[100010],n,intrebari,x,i,s,d,m,q;

int main()

{

ifstream f("cautbin.in");
ofstream g("cautbin.out");

f>>n;

for(i=1;i<=n;i++) f>>v[i];

f>>intrebari;

for(i=1;i<=intrebari;i++)

 { f>>q>>x; s=1; d=n;


   m=(s+d)>>1;

   if(q==0)

   while(s<d)

     { if(v[m]<x) s=m+1;

	 else if(v[m]>x) d=m-1;

	else break;

       m=(s+d)>>1;
      }

     else if(q==1)

     while(s<d&&s!=d-1)

     { if(v[m]<x) s=m;

	 else if(v[m]>x) d=m-1;

	else break;

       m=(s+d)>>1;
      }

     else

     while(s<d&&s!=d-1)

     { if(v[m]<x) s=m+1;

	 else if(v[m]>x) d=m;

	else break;

       m=(s+d)>>1;
      }


   g<<m<<'\n';
  }

f.close();
g.close();
return 0;
}