Pagini recente » Cod sursa (job #267108) | Cod sursa (job #2370644) | Cod sursa (job #1717384) | Cod sursa (job #234278) | Cod sursa (job #600327)
Cod sursa(job #600327)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> num, Sol;
int s;
int bin (int end, int x)
{
int i;
for (i = end; i >= 0; i--)
if (num[i] <= x)
return i;
return -1;
}
int solve (vector <int> sol,int sum, int end,int ix)
{
if (sol[5] != 0 && sum == 0)
{
Sol = sol;
return 1;
}
if (ix <= 5)
{
int x = bin (end, sum), i;
for (i = x; i >= 0; i--)
if (sum - num[i] >= 0)
{
sol[ix] = num[i];
if (solve (sol, sum - num[i], x, ix + 1))
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, num.size() - 1, 0);
if (Sol.size() == 6)
for (i = 5; i >= 0; i--)
out << Sol[i] << " ";
else
out << -1;
return 0;
}