Pagini recente » Cod sursa (job #402670) | Cod sursa (job #207185) | Cod sursa (job #35523) | Cod sursa (job #1615018) | Cod sursa (job #954529)
Cod sursa(job #954529)
#include <algorithm>
#include <fstream>
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
int N, S;
int nums[105];
struct Tuplu {
int a, b, c;
Tuplu() {
a = b = c = 0;
}
Tuplu(int aa, int bb, int cc) {
a = aa, b = bb, c = cc;
}
};
unordered_map<int, Tuplu> sums;
void read_input();
void solve();
int main() {
read_input();
solve();
return 0;
}
void read_input() {
fin >> N >> S;
for (int i = 0; i < N; ++i) {
fin >> nums[i];
}
}
void solve() {
int sum;
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
for (int k = 0; k < N; ++k) {
sum = nums[i] + nums[j] + nums[k];
if (sum > S) continue;
sums[sum] = Tuplu(nums[i], nums[j], nums[k]);
auto it = sums.find(S - sum);
if (it != sums.end()) {
fout << nums[i] << ' ' << nums[j] << ' ' << nums[k] << ' ';
fout << it->second.a << ' '<< it->second.b << ' ' << it->second.c;
return;
}
}
}
}
fout << -1;
}