Pagini recente » Cod sursa (job #721962) | Cod sursa (job #450511) | Cod sursa (job #770049) | Cod sursa (job #2304451) | Cod sursa (job #1553504)
#include <iostream>
#include <fstream>
#include <vector>
#include <tuple>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
const int MOD = 666013;
int N, S;
int a[105];
vector<pair<int, tuple<int, int, int> > > H[MOD];
int main()
{
fin >> N >> S;
for (int i = 1; i <= N; ++i)
fin >> a[i];
for (int i = 1; i <= N; ++i)
{
for (int j = i; j <= N; ++j)
{
for (int k = j; k <= N; ++k)
{
int sum = a[i] + a[j] + a[k];
H[sum % MOD].push_back(make_pair(sum, make_tuple(a[i], a[j], a[k])));
}
}
}
for (int i = 1; i <= N; ++i)
{
for (int j = i; j <= N; ++j)
{
for (int k = j; k <= N; ++k)
{
int sum = S - a[i] - a[j] - a[k];
int pos = sum % MOD;
for (auto it = H[pos].begin(); it != H[pos].end(); ++it)
{
if (it->first == sum)
{
auto tup = it->second;
fout << a[i] << ' ' << a[j] << ' ' << a[k] << ' ' << get<0>(tup) << ' ' << get<1>(tup) << ' ' << get<2>(tup);
return 0;
}
}
}
}
}
fout << -1;
return 0;
}