Cod sursa(job #518796)

Utilizator dacyanMujdar Dacian dacyan Data 3 ianuarie 2011 05:02:57
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <vector>
using namespace std;

ifstream fin("loto.in");
ofstream fout("loto.out");

long long s, sum, n, a[101], drum[101];
bool ok;

void Back(int k);
void Write();

int main()
{
	fin >> n >> s;
	for (int i = 1; i <= n; ++i)
		fin >> a[i];
	fin.close();
	
	Back(1);
    if (!ok) fout << "-1" << '\n';
	fout.close();
	return 0;
}

void Back(int k)
{
	if (ok) return;
	if (k > 6)
	{
		if (sum == s)
		{
			ok = true;
			Write();
		}
		return;
	}
	if (ok) return;
	if (sum > s) return;
	
	for (int i = 1; i <= n && sum + a[i] <= s; ++i)
	{
		drum[k] = a[i];
		sum += a[i];
		Back(k+1);
		sum -= a[i];
	}
}
		
void Write()
{
	for (int i = 1; i <= 6 ; ++i)
		fout << drum[i] << ' ';
	fout << '\n';
}