Pagini recente » Cod sursa (job #51658) | Cod sursa (job #253155) | Cod sursa (job #84124) | Cod sursa (job #2245732) | Cod sursa (job #1315529)
#include<fstream>
#include<unordered_set>
#include<algorithm>
using namespace std;
ifstream fin("loto.in");
ofstream fout("loto.out");
unordered_set<int>h;
int v[101];
int main()
{
int n;
fin >> n;
int s;
fin >> s;
for (int i = 1; i <= n; i++)
fin >> v[i];
for (int i = 1; i <= n; i++)
{
for (int j = i; j <= n; j++)
{
for (int k = j; k <= n; k++)
{
if (h.find(v[i] + v[j] + v[k]) == h.end())
{
h.insert(v[i] + v[j] + v[k]);
}
}
}
}
bool g = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
{
for (int k = 1; k <= n; k++)
{
if (h.find(s - (v[i] + v[j] + v[k])) != h.end())
{
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
s -= v[i] + v[j] + v[k];
g = 1;
break;
}
}
if (g == 1)
break;
}
if (g == 1)
break;
}
if (g == 0)
fout << -1;
else
{
g = 0;
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)
{
fout << v[i] << ' ' << v[j] << ' ' << v[k] << ' ';
s -= v[i] + v[j] + v[k];
g = 1;
break;
}
}
if (g == 1)
break;
}
if (g == 1)
break;
}
}
}