Cod sursa(job #773384)

Utilizator misinozzz zzz misino Data 1 august 2012 16:34:32
Problema Loto Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int i,j,k,p,n,s,x,b[1000001],a[101];
int bsearch(int x)
{int li=1,ls=k,mij;
while(li<=ls)
{mij=(li+ls)>>1;
if(b[mij]==x)
	return 1;
else
	if(b[mij]<x)
		li=mij+1;
	else
		ls=mij-1;
}
return 0;
}
int main()
{f>>n>>s;
for(i=1;i<=n;++i)
	f>>a[i];
k=0;
for(i=1;i<=n;++i)
	for(j=i;j<=n;++j)
		for(p=j;p<=n;++p)
		{++k;
		b[k]=a[i]+a[j]+a[p];
		}
sort(b+1,b+k+1);
for(i=1;i<=k;++i)
	if(bsearch(s-b[i]))
	{x=b[i];
	for(i=1;i<=n;++i)
		for(j=i;j<=n;++j)
			for(p=j;p<=n;++p)
				if(a[i]+a[j]+a[p]==x)
				{g<<a[i]<<' '<<a[j]<<' '<<a[p]<<' ';
				x=s-x;
				for(i=1;i<=n;++i)
					for(j=i;j<=n;++j)
						for(p=j;p<=n;++p)
							if(a[i]+a[j]+a[p]==x)
							{g<<a[i]<<' '<<a[j]<<' '<<a[p]<<'\n';
							return 0;
							}
				}
	}
g<<-1<<'\n';
return 0;
}