Pagini recente » Cod sursa (job #2282231) | Cod sursa (job #1420520) | Cod sursa (job #2317167) | Rating Agnes Elena (AgnElena) | Cod sursa (job #1488187)
#include <bits/stdc++.h>
using namespace std;
const int Nmax = 110;
int n , s , i;
int a[Nmax];
map < int , array < int , Nmax > > Hash;
array < int , Nmax > mask , aux;
void solve(bool mode)
{
int i , j , k;
mask[0] = 1;
for (i = 1 ; i <= n; ++i)
{
mask[i]++;
for (j = 1; j <= n; ++j)
{
mask[j]++;
for (k = 1; k <= n; ++k)
{
mask[k]++;
int sum = a[i] + a[j] + a[k];
if (!mode && Hash[sum][0] == 0)
Hash[sum] = mask;
else if (mode)
{
if (Hash[s-sum][0] != 0)
{
aux = Hash[s-sum];
printf("%d %d %d", a[i] , a[j] , a[k]);
for (i = 1; i <= n; ++i)
for (j = 1; j <= aux[i]; ++j)
printf(" %d", a[i]);
printf("\n");
return;
}
}
mask[k]--;
}
mask[j]--;
}
mask[i]--;
}
if (mode) printf("-1\n");
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d %d", &n, &s);
for (i = 1; i <= n; ++i)
scanf("%d", a + i);
solve(0);
solve(1);
return 0;
}