Pagini recente » Cod sursa (job #781212) | Cod sursa (job #2786917) | Cod sursa (job #643214) | Cod sursa (job #2519805) | Cod sursa (job #2354754)
#include <iostream>
#include <fstream>
#include <map>
#include <set>
const int NMAX = 103;
struct SumeDe3 {
int a;
int b;
int c;
};
int NumereLoto[NMAX];
std::map <int, SumeDe3> SumeDeTrei;
std::set <int> SumeDeTreiSet;
int main() {
std::ifstream in("loto.in");
std::ofstream out("loto.out");
int N, S;
in >> N >> S;
for (int i = 1; i <= N; ++i) {
in >> NumereLoto[i];
}
//{NumereLoto[i] + NumereLoto[j] + NumereLoto[k], NumereLoto[i], NumereLoto[j], NumereLoto[k]}
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
for (int k = 1; k <= N; ++k) {
int suma = NumereLoto[i] + NumereLoto[j] + NumereLoto[k];
SumeDeTreiSet.insert(suma);
SumeDe3 Temp = { NumereLoto[i], NumereLoto[j], NumereLoto[k] };
SumeDeTrei[suma] = Temp;
}
}
}
for (int i = 1; i <= N; ++i) {
for (int j = 1; j <= N; ++j) {
for (int k = 1; k <= N; ++k) {
int suma = S - NumereLoto[i] - NumereLoto[j] - NumereLoto[k];
if (SumeDeTreiSet.find(suma) != SumeDeTreiSet.end()) {
out << NumereLoto[i] << ' ' << NumereLoto[j] << ' ' << NumereLoto[k] << ' ' << SumeDeTrei[suma].a << ' ' << SumeDeTrei[suma].b << ' ' << SumeDeTrei[suma].c;
return 0;
}
}
}
}
out << -1;
system("PAUSE");
return 0;
}