Pagini recente » Cod sursa (job #2465685) | Cod sursa (job #1191207) | Cod sursa (job #2447158) | Cod sursa (job #2191297) | Cod sursa (job #964137)
Cod sursa(job #964137)
#include <cstdio>
#include <cstdlib>
#include <map>
#include <algorithm>
using namespace std;
#define Nmax 110
int N, S, V[Nmax];
map<int, int> Hash;
void Reconstruct(int V1, int V2, int V3)
{
int FinS = S - V1 - V2 - V3;
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] == FinS)
{
printf("%i %i %i %i %i %i\n", V1, V2, V3, V[i], V[j], V[k]);
exit(0);
}
}
int main()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%i %i", &N, &S);
for(int i = 1; i <= N; ++ i)
scanf("%i", &V[i]);
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j)
for(int k = 1; k <= N; ++ k)
Hash[V[i] + V[j] + V[k]] = 1;
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j)
for(int k = 1; k <= N; ++ k)
if(Hash.count(S - V[i] - V[j] - V[k]))
Reconstruct(V[i], V[j], V[k]);
printf("-1");
return 0;
}