Pagini recente » Cod sursa (job #3316526) | Cod sursa (job #3335066) | Cod sursa (job #1063991) | Cod sursa (job #1085647) | Cod sursa (job #3342412)
#include <bits/stdc++.h>
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
int v[101];
int n, sum;
unordered_map<int, int> s_map;
int remember(int a, int b, int c)
{
return a * 1000000 + b * 1000 + c;
}
void desfac(int code, int& a, int& b, int& c)
{
c = code % 1000;
b = (code / 1000) % 1000;
a = code / 1000000;
}
int main()
{
f >> n >> sum;
for (int i = 1; i <= n; ++i)
f >> v[i];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
{
int s = v[i] + v[j] + v[k];
int nr = remember(i, j, k);
s_map[s] = nr;
}
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
{
int s = v[i] + v[j] + v[k];
int rest = sum - s;
if (s_map.find(rest) != s_map.end()) {
int nr = s_map[rest];
int a, b, c;
desfac(nr, a, b, c);
g << v[i] << " " << v[j] << " " << v[k] << " ";
g << v[a] << " " << v[b] << " " << v[c] << "\n";
return 0;
}
}
g << "-1";
return 0;
}