Pagini recente » Cod sursa (job #3279575) | Cod sursa (job #2287818) | Cod sursa (job #919394) | Cod sursa (job #859921) | Cod sursa (job #600374)
Cod sursa(job #600374)
#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; i--)
if (sum - num[i] >= 0 && (s - sum) + num[i] * (6 - ix) >= s && (s - sum) + num[0]*(6 - ix) <= s)
{
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;
}