Pagini recente » Cod sursa (job #466541) | Cod sursa (job #2325436) | Cod sursa (job #2754980) | Cod sursa (job #747966) | Cod sursa (job #2022567)
#include <fstream>
#include <vector>
#include <algorithm>
const int NMAX = 105;
const int HMAX = 666013;
using namespace std;
ifstream f("loto.in");
ofstream g("loto.out");
struct hashy
{
int nr1;
int nr2;
int nr3;
};
int N,S,v[NMAX];
vector <hashy> HH[HMAX+5];
int main()
{
f >> N >> S;
for (int i = 1; i <= N; ++i)
{
f >> v[i];
}
sort(v+1,v+N+1);
for (int i = 1; i <= N; ++i)
{
for (int j = i; j <= N; ++j)
{
for (int k = j; k <= N; ++k)
{
int key = (v[i]+v[j]+v[k]) % HMAX;
hashy element;
element.nr1 = v[i];
element.nr2 = v[j];
element.nr3 = v[k];
HH[key].push_back(element);
}
}
}
for (int i = 1; i <= N; ++i)
{
for (int j = i; j <= N; ++j)
{
for (int k = j; k <= N; ++k)
{
int sum = S - (v[i]+v[j]+v[k]);
if (sum >= 0)
{
int key = sum % HMAX;
for (int it = 0 ; it < HH[key].size(); ++it)
{
if (HH[key][it].nr1 + HH[key][it].nr2 + HH[key][it].nr3 == sum)
{
g << v[i] << " " << v[j] << " " << v[k] << " " << HH[key][it].nr1 << " " << HH[key][it].nr2 << " " << HH[key][it].nr3;
return 0;
}
}
}
}
}
}
g << "-1";
f.close();
g.close();
return 0;
}