Cod sursa(job #714251)

Utilizator paulbotabota paul paulbota Data 15 martie 2012 16:45:42
Problema Loto Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream>
#define MAXN 102
#define inf "loto.in"
#define outf "loto.out"

using namespace std;

ifstream in(inf);
ofstream out(outf);

int n,s,v[MAXN],a[7],k,m;

void read()
{
	in>>n>>s;
	for(int i=1;i<=n;i++)
		in>>v[i];
}

void swap(int h[MAXN],int x,int y)
{
	int aux=h[x];
	h[x]=h[y];
	h[y]=aux;
}

void heapify(int h[MAXN],int i)
{
	int s,d,max=i;
	s=2*i;
	d=2*i+1;
	if(s<=m && h[s]<h[i])
		max=s;
	if(d<=m && h[d]<h[max])
		max=d;
	if(max!=i)
	{
		swap(v,max,i);
		heapify(h,max);
	}
}

void heapsort(int h[MAXN])
{
	int i;
	for(i=m/2;i>=1;i--)
		heapify(h,i);
	for(i=2;i<=m;i++)
	{
		swap(v,1,m);
		m--;
		heapify(h,1);
	}
}

int suma()
{
	int sum=0;
	for(int i=1;i<=6;i++)
		sum=sum+a[i];
	return sum;
}

int main()
{
	read();
	m=n;
	heapsort(v);
	int i1,i2,i3,i4,i5,i6;
	for(i1=1;i1<=n;i1++)
		for(i2=1;i2<=n;i2++)
			for(i3=1;i3<=n;i3++)
				for(i4=1;i4<=n;i4++)
					for(i5=1;i5<=n;i5++)
						for(i6=1;i6<=n;i6++)
							if(v[i1]+v[i2]+v[i3]+v[i4]+v[i5]+v[i6]==s)
							{
								out<<v[i1]<<" "<<v[i2]<<" "<<v[i3]<<" "<<v[i4]<<" "<<v[i5]<<" "<<v[i6]<<" ";
								return 0;
							}
	out<<"-1";						
	return 0;
}