Pagini recente » Cod sursa (job #2521288) | Cod sursa (job #3149923) | Cod sursa (job #492658) | Cod sursa (job #1425903) | Cod sursa (job #2876515)
#include <bits/stdc++.h>
#define MAXN 100
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int n, s, arr[MAXN], sol[6] = {0};
void citire() {
fin >> n >> s;
for (int i = 0; i < n; i++)
fin >> arr[i];
}
bool back(int i, int sum) {
if (i == 6)
return sum == s;
//se estimeaza o valoare
int maxi = s / (6 - i);
int poz = upper_bound(arr, arr + n, maxi) - arr;
for (int j = 0; j <= poz; j++) {
sol[i] = arr[j];
sum += sol[i];
bool res = back(i + 1, sum);
if (res)
return true;
sum -= sol[i];
}
return false;
}
int main() {
citire();
sort(arr, arr + n);
if (back(0, 0))
for (int i = 0; i < 6; i++)
fout << sol[i] << ' ';
return 0;
}