Pagini recente » Cod sursa (job #2412938) | Cod sursa (job #1844398) | Cod sursa (job #1314384) | Cod sursa (job #3302552) | Cod sursa (job #2464913)
#include <bits/stdc++.h>
using namespace std;
ifstream in("loto.in");
ofstream out("loto.out");
const int N = 105;
const int S = 600000005;
bitset<S> can;
int v[N];
int main()
{
int n,s;
in >> n >> s;
for (int i = 1; i<=n; i++)
in >> v[i];
for (int i = 1; i<=n; i++)
for (int j = 1; j<=n; j++)
for (int k = 1; k<=n; k++)
can[v[i]+v[j]+v[k]] = 1;
int nr1,nr2;
bool ok = 0;
for (int i = 1; i<=n && !ok; i++)
for (int j = 1; j<=n && !ok; j++)
for (int k = 1; k<=n && !ok; k++)
if (v[i]+v[j]+v[k]<=s && can[s-v[i]-v[j]-v[k]])
{
nr1 = s-v[i]-v[j]-v[k];
nr2 = v[i]+v[j]+v[k];
ok = 1;
}
if (!ok)
{
out << -1;
return 0;
}
ok = 0;
for (int i = 1; i<=n && !ok; i++)
for (int j = 1; j<=n && !ok; j++)
for (int k = 1; k<=n && !ok; k++)
if (v[i]+v[j]+v[k] == nr1)
{
out << v[i] << " " << v[j] << " " << v[k] << " ";
ok = 1;
}
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] == nr2)
{
out << v[i] << " " << v[j] << " " << v[k];
return 0;
}
}