Pagini recente » Cod sursa (job #2262465) | Cod sursa (job #646842) | Cod sursa (job #2675591) | Cod sursa (job #2178164) | Cod sursa (job #14735)
Cod sursa(job #14735)
#include <stdio.h>
#include <algorithm>
#include <set>
using namespace std;
int N, S, V[128], s1, s2, oksol;
set<int> A;
void solve(void)
{
int i, j, k;
for(i = 1; i <= N; i++)
for(j = i; j <= N; j++)
for(k = j; k <= N; k++)
A.insert(V[i]+V[j]+V[k]);
for(i = 1; i <= N; i++)
for(j = i; j <= N; j++)
for(k = j; k <= N; k++)
{
s1 = V[i]+V[j]+V[k], s2 = S-s1;
if(A.find(s2) != A.end())
{
oksol = 1;
return ;
}
}
}
int SOL[16];
void baga(int s)
{
int i, j, k;
for(i = 1; i <= N; i++)
for(j = i; j <= N; j++)
for(k = j; k <= N; k++)
if(V[i]+V[j]+V[k] == s)
{
SOL[++SOL[0]] = V[i], SOL[++SOL[0]] = V[j];
SOL[++SOL[0]] = V[k];
return ;
}
}
int main(void)
{
freopen("loto.in", "rt", stdin);
freopen("loto.out", "wt", stdout);
int i, j, k;
scanf("%d %d\n", &N, &S);
for(i = 1; i <= N; i++)
scanf("%d ", &V[i]);
solve();
if(oksol == 0)
printf("-1\n");
else
{
baga(s1), baga(s2);
for(i = 1; i < 6; i++)
printf("%d ", SOL[i]);
printf("%d\n", SOL[6]);
}
return 0;
}