Pagini recente » Cod sursa (job #1896976) | Cod sursa (job #609515) | Cod sursa (job #161567) | Cod sursa (job #573808) | Cod sursa (job #2152868)
#include <cstdio>
#include <unordered_map>
const int MAXN = 1e2;
struct M {
int x, y, z;
};
std::unordered_map <int, M> h;
int v[MAXN + 1];
int main() {
FILE *fin, *fout;
int n, s, x, y, z, x2, y2, z2;
bool flag;
fin = fopen("loto.in", "r");
fscanf(fin, "%d%d", &n, &s);
for (int i = 1; i <= n; ++i) {
fscanf(fin, "%d", &v[i]);
}
fclose(fin);
flag = 0;
for (int i = 1; i <= n && !flag; ++i) {
for (int j = 1; j <= n && !flag; ++j) {
for (int k = 1; k <= n && !flag; ++k) {
h[v[i] + v[j] + v[k]] = {v[i], v[j], v[k]};
if (h.find(s - v[i] - v[j] - v[k]) != h.end()) {
flag = 1;
x = h[v[i] + v[j] + v[k]].x;
y = h[v[i] + v[j] + v[k]].y;
z = h[v[i] + v[j] + v[k]].z;
x2 = h[s - v[i] - v[j] - v[k]].x;
y2 = h[s - v[i] - v[j] - v[k]].y;
z2 = h[s - v[i] - v[j] - v[k]].z;
}
}
}
}
fout = fopen("loto.out", "w");
if (!flag) {
fprintf(fout, "-1\n");
} else {
fprintf(fout, "%d %d %d %d %d %d\n", x, y, z, x2, y2, z2);
}
fclose(fout);
return 0;
}