Pagini recente » Cod sursa (job #2173772) | Cod sursa (job #2466872) | Cod sursa (job #1238734) | Cod sursa (job #711869) | Cod sursa (job #3129302)
#include <iostream>
#include <fstream>
#include <unordered_map>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
unordered_map <int, pair<pair<int, int>, int> > suma3din6;
const int NMAX = 100;
int v[NMAX + 1];
int N, S, s;
int main() {
in >> N >> S;
for (int i = 0; i < N; i++) //citim numerele
in >> v[i];
bool found = 0; // daca am gasit combinatia de numere pt a obtine suma
for (int i = 0; found == 0 && i < N; i++){
for (int j = i; found == 0 && j < N; j++){
for (int k = j; found == 0 && k < N; k++){
s = v[i] + v[j] + v[k];
suma3din6[s] = make_pair(make_pair(v[i], v[j]), v[k]); //stocam in map toate combinatiile de 3 numere si suma lor
//verificam daca exista un 3-tuplu in map la care sa adunam cele 3 numere si sa obtinem suma
if (suma3din6.find(S - s) != suma3din6.end()) {
found = 1; // am gasit o combinatie de 6 numere si o afisam
out << suma3din6[S - s].first.first << ' ' << suma3din6[S - s].first.second << ' ' << suma3din6[S - s].second << ' ';
out << v[i] << ' ' << v[j] << ' ' << v[k];
}
}
}
}
if (!found){
out << -1;
}
in.close();
out.close();
return 0;
}