Cod sursa(job #273304)

Utilizator iulia609fara nume iulia609 Data 8 martie 2009 14:06:06
Problema Cautare binara Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include<fstream.h>
unsigned long v[10000],ok;
int main()
{unsigned long a,n,m,i,m1,j,li,ls,x;

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

f>>n;
for(i=1;i<=n;i++)
   f>>v[i];
f>>m1;
for(i=1;i<=m1;i++)
   {f>>a>>x;
    if(a==0){ok=0;li=1;ls=n;
	     while(ok==0&&li<=ls)
		  {m=(li+ls)/2;
		   if(x==v[m])ok=1;
		     else if (x<v[m])ls=m-1;
			 else li=m+1;
		   }
	     if(ok)g<<ls<<'\n';
		else g<<-1<<'\n';
	    }
      else if(a==1){ok=0;li=1;ls=n;
		    while(ok==0&&li<=ls)
			{m=(li+ls)/2;
			 if(x==v[m])ok=1;
			    else if (x<v[m])ls=m-1;
				else li=m+1;
			}
		     if(ok)g<<ls-1<<'\n';
		       else g<<ls<<'\n';

		     }
	   else if(a==2){ok=0;li=1;ls=n;
			 while(ok==0&&li<=ls)
			     {m=(li+ls)/2;
			      if(x==v[m])ok=1;
				else if(x<v[m])ls=m-1;
				     else li=m+1;
			 }
			 if(ok)g<<li+1<<'\n';
			   else g<<li<<'\n';
			}
      }

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