Cod sursa(job #600378)

Utilizator luckyme91wiz kid luckyme91 Data 1 iulie 2011 15:33:23
Problema Loto Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> num, Sol;
int s;

int solve (vector <int> sol,int sum, int  ix, int j)
{
	if (sol[5] != 0 && sum == 0)
	{
		Sol = sol;
		return 1;
	}
	if (ix <= 5)
	{
		int i;
		for (i = j; i >= 0 && (s - sum) + num[i] * (6 - ix) >= s && (s - sum) + num[0]*(6 - ix) <= s; i--)
		{	
			sol[ix] = num[i];
			if (solve (sol, sum - num[i], ix + 1, j))
				return 1;
		}
	}
	return 0;

}
	


int main() {

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

int n, x, i;

in >> n >> s;
vector <int> sol(6, 0);

for (; n > 0; n--)
{
	in >> x;
	num.push_back(x);
}
sort (num.begin(), num.begin() + num.size() - 1);
solve (sol, s, 0, num.size() - 1);
if (Sol.size() == 6)
	for (i = 5; i >= 0; i--)
		out << Sol[i] << " ";
else
	out << -1;
return 0;
}