Cod sursa(job #272830)

Utilizator BuRNB Radu BuRN Data 7 martie 2009 20:49:27
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <fstream>
using namespace std;

int main()
{
int a[100],n,x,gasit,dr,st,i,mijloc,poz1,poz,gata,m,y,z;
ifstream in("cautbin.in");
ofstream out("cautbin.out");
in>>n;
for(i=1;i<=n;i++)
	in>>a[i];
in>>m;
in>>x>>x;
in>>y>>y;
in>>z>>z;

for(st=1,dr=n,gata=0;!gata && st<=dr;)
{
	mijloc=(st+dr)/2;
	if(a[mijloc]==x)
	{
		gata=1;
		poz=mijloc;
	}
	else if(a[mijloc]<x)
		st=mijloc+1;
	else
		dr=mijloc-1;
}
if(gata)
	out<<poz<<"\n";
else
	out<<-1<<"\n";

for(st=1,dr=n,gata=0;!gata && st<=dr;)
{
	mijloc=(st+dr)/2;
	if(a[mijloc]<=y)
	{
		gata=1;
		poz=mijloc;
	}
	else if(a[mijloc]<y)
		st=mijloc+1;
	else
		dr=mijloc-1;
}
out<<poz<<"\n";

for(st=1,dr=n,gata=0;!gata && st<=dr;)
{
	mijloc=(st+dr)/2;
	if(a[mijloc]>=z)
	{
		gata=1;
		poz=mijloc;
	}
	else if(a[mijloc]<z)
		st=mijloc+1;
	else
		dr=mijloc-1;
}
out<<poz<<"\n";

return 0;
}