Cod sursa(job #172102)

Utilizator Andreid91Ciocan Andrei Andreid91 Data 5 aprilie 2008 19:07:53
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include<fstream.h>

int poz (long v[101],int a, int b)
	{
	long aux,piv=v[a];
	while (a<b)
		{
		if (v[a]>v[b]) {
			       aux=v[a];
			       v[a]=v[b];
			       v[b]=aux;
			       }
		if (piv==v[a]) b--;
			else a++;
		}
	return a;
	}


void quick (long v[101],int a,int b)
	{
	int k;
	if (a<b) {
		 k=poz(v,a,b);
		 quick (v,a,k);
		 quick (v,k+1,b);
		 }
        }


int main()
{
int n,i,i1,i2,i3,i4,i5,i6;
long s,v[101];
ifstream f("loto.in");
ofstream g("loto.out");
f>>n>>s;
for (i=1;i<=n;i++) f>>v[i];
quick(v,1,n);
long s1=0;   int sw1=0;
int sw=1;
if (6*v[n]<s || 6*v[1]>s) sw=0;
	else if (6*v[n]==s) {
			    sw1=1;sw=0;
			    g<<v[n]<<' '<<v[n]<<' '<<v[n]<<' '<<v[n]<<' '<<v[n]<<' '<<v[n];
			    }
for (i1=1;i1<=n && sw;i1++)
	for (i2=i1;i2<=n && sw;i2++)
		for (i3=i2;i3<=n && sw;i3++)
			for (i4=i3;i4<=n && sw; i4++)
				for (i5=i4;i5<=n && sw; i5++)
					for (i6=i5;i6<=n && sw;i6++)
						if ((s1=v[i1]+v[i2]+v[i3]+v[i4]+v[i5]+v[i6])==s) {g<<v[i1]<<' '<<v[i2]<<' '<<v[i3]<<' '<<v[i4]<<' '<<v[i5]<<' '<<v[i6];sw=0;sw1=1;}
							else if (s1>s) sw=0;

if (sw1==0) g<<-1;
g.close();
f.close();
return 0;
}