Pagini recente » Cod sursa (job #1392257) | Cod sursa (job #643657) | Cod sursa (job #2868349) | Cod sursa (job #2907863) | Cod sursa (job #3131119)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
bool gasesteBiletCastigator(const vector<int>& numere, int suma_tinta, vector<int>& bilet_curent, int index, ofstream& fisier_iesire) {
if (suma_tinta == 0 && bilet_curent.size() == 6) {
for (int numar : bilet_curent) {
fisier_iesire << numar << " ";
}
return true;
}
if (suma_tinta < 0 || bilet_curent.size() >= 6 || index >= numere.size()) {
return false;
}
for (int i = index; i < numere.size(); i++) {
bilet_curent.push_back(numere[i]);
if (gasesteBiletCastigator(numere, suma_tinta - numere[i], bilet_curent, i, fisier_iesire)) {
return true;
}
bilet_curent.pop_back();
}
return false;
}
int main() {
ifstream fisier_intrare("loto.in");
ofstream fisier_iesire("loto.out");
int N, S;
fisier_intrare >> N >> S;
vector<int> numere(N);
for (int i = 0; i < N; i++) {
fisier_intrare >> numere[i];
}
sort(numere.begin(), numere.end());
vector<int> bilet_curent;
if (!gasesteBiletCastigator(numere, S, bilet_curent, 0, fisier_iesire)) {
fisier_iesire << -1;
}
return 0;
}