Pagini recente » Cod sursa (job #1056455) | Cod sursa (job #3155348) | Cod sursa (job #3292713) | Cod sursa (job #272461) | Cod sursa (job #2725244)
#include <iostream>
#include <fstream>
#include <unordered_set>
using namespace std;
int v[101];
int main()
{
ifstream in("loto.in");
ofstream out("loto.out");
int n, s;
in >> n >> s;
for(int i = 1; i <= n; i++)
in >> v[i];
unordered_set<int> sums;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
sums.insert(v[i] + v[j] + v[k]);
bool ok = 0;
int solA, solB, solC;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
{
int sumLeft = s - v[i] - v[j] - v[k];
if(sums.find(sumLeft) != sums.end())
{
ok = 1;
solA = v[i];
solB = v[j];
solC = v[k];
}
}
if(ok == 0)
out << -1;
else
{
out << solA << " " << solB << " " << solC << " ";
int solD, solE, solF;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
if(v[i] + v[j] + v[k] == s - solA - solB - solC)
{
solD = v[i];
solE = v[j];
solF = v[k];
}
out << solD << " " << solE << " " << solF;
}
return 0;
}