Pagini recente » Cod sursa (job #1020864) | Cod sursa (job #781212) | Cod sursa (job #2786917) | Cod sursa (job #643214) | Cod sursa (job #2519805)
#include <fstream>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int v[128], n, s, sol[8];
bool found;
void citire() {
fin >> n >> s;
for(int i = 1; i <= n; i++)
fin >> v[i];
}
bool valid(int k) {
//if(sol[k] < sol[k-1] && k > 1) return false;
int sum = 0;
for(int i = 1; i <= k; i++)
sum += sol[i];
return sum <= s;
}
bool solutie(int k) {
if (k != 6) return false;
int sum = 0;
for(int i = 1; i <= k; i++)
sum += sol[i];
return sum == s;
}
void afis() {
found = true;
for(int i = 1; i <= 6; i++)
fout << sol[i] << ' ';
}
void backtracking(int k) {
for(int i = 1; i <= n && !found; i++) {
sol[k] = v[i];
if(valid(k)) {
if(solutie(k) && !found)
afis();
else if(k < 6)
backtracking(k+1);
}
}
}
int main() {
citire();
backtracking(1);
if(!found) fout << -1;
}