Pagini recente » Cod sursa (job #2182021) | Istoria paginii utilizator/downhill | Cod sursa (job #466444) | Cod sursa (job #2418062) | Cod sursa (job #2054497)
#define MD 4159
#define DM 101
#include <fstream>
#include <vector>
using namespace std;
struct str
{
int val, x1, x2, x3;
};
ifstream fi ("loto.in");
ofstream fo ("loto.out");
int n, s, v[DM], sm, ind;
vector <str> hsh[MD];
int main()
{
fi >> n >> s;
for (int i = 1; i <= n; ++i)
fi >> v[i];
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
{
sm = v[i] + v[j] + v[k];
ind = sm%MD;
hsh[ind].push_back({sm, v[i], v[j], v[k]});
}
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
for (int k = 1; k <= n; ++k)
{
sm = v[i] + v[j] + v[k];
if (sm <= s)
{
ind = (s - sm)%MD;
for (int l = 0; l < hsh[ind].size(); ++l)
if (hsh[ind][l].val == s - sm)
{
fo << v[i] << ' ' << v[j] << ' ' << v[k] << ' ' << hsh[ind][l].x1 << ' ' << hsh[ind][l].x2 << ' ' << hsh[ind][l].x3;
return 0;
}
}
}
fo << -1;
return 0;
}