Cod sursa(job #4974)

Utilizator dzsDonca Zsolt dzs Data 8 ianuarie 2007 23:50:34
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
// Loto.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
//#include <conio.h>

#pragma warning(disable : 4996)

long n, s;
long v[100];
long sz[6] = {0};

int back(int p)
{
	int retv = 0;
	if (p >= 6)
	{
		long sum = 0;
		for(int i=0;i<6;i++) sum += v[sz[i]];
		if (sum == s) retv = 1;
	} else {
		if (p > 0) sz[p] = sz[p-1];
		else sz[p] = 0;
		while (sz[p] < n && retv == 0)
		{
			retv = back(p+1);
			sz[p]++;
		}
		sz[p]--;
	}
	return retv;
}

int main(int argc, char* argv[])
{
	long i;
	FILE *f = fopen("loto.in","r");
	fscanf(f, "%ld %ld", &n, &s);
	for(i=0;i<n;i++) fscanf(f, "%ld", &v[i]);
	fclose(f);

	bool error = false;

	f = fopen("loto.out","w");
	if (s < v[0]*6 || s > v[n-1]*6)
	{
		fprintf(f,"-1");
	} else {
		if (s == v[0]*6)
		{
			for(i=0;i<6;i++) fprintf(f, "%ld ", v[0]);
		} else {
			if (s == v[5]*6)
			{
				for(i=0;i<6;i++) fprintf(f, "%ld ", v[5]);
			} else {
				if (back(0) != 0)
				{
					for(i=0;i<6;i++) fprintf(f, "%ld ", v[sz[i]]);
				} else {
					fprintf(f,"-1");
				}
			}
		}
	}
	return 0;
}