Cod sursa(job #596705)

Utilizator maritimCristian Lambru maritim Data 18 iunie 2011 15:10:28
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>

#define MaxN 100

int A[MaxN];
int S[9];
int V[9];
int N;
int Smax;
bool gata = false;

void back(int k)
{
	if(k == 7)
	{
		if(S[6] == Smax)
			gata = true;
	}
	else
	for(int i=1;!gata && i<=N;i++)
		if(S[k-1] + A[i] <= Smax)
		{
			S[k] = S[k-1] + A[i];
			V[k] = i;
			back(k+1);
		}
}

int main()
{
	FILE *f = fopen("loto.in","r");
	FILE *g = fopen("loto.out","w");
	
	fscanf(f,"%d %d",&N,&Smax);
	for(int i=1;i<=N;i++)
		fscanf(f,"%d ",&A[i]);
	back(1);
	if(gata)
		for(int i=1;i<=6;i++)
			fprintf(g,"%d ",A[V[i]]);
	else
		fprintf(g,"-1");
	
	fclose(g);
	fclose(f);
	return 0;
}