Pagini recente » Cod sursa (job #706613) | Cod sursa (job #3217406) | Cod sursa (job #1338992) | Cod sursa (job #234977) | Cod sursa (job #916811)
Cod sursa(job #916811)
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <map>
#include <set>
using namespace std;
#define NMAX 105
int N, S, A[NMAX];
set<int> sums;
void printSum(int s)
{
for(int i = 0; i < N;++i)
for(int j = i; j < N; ++j)
for(int k = j; k < N; ++k)
if(A[i] + A[j] + A[k] == s)
{
printf("%d %d %d ", A[i], A[j], A[k]);
return;
}
}
int main()
{
freopen("loto.in", "rt", stdin);
freopen("loto.out", "wt", stdout);
scanf("%d %d", &N, &S);
for(int i = 0; i < N; i++)
scanf("%d", &A[i]);
sort(A, A+N);
for(int i = 0; i < N;++i)
for(int j = 0; j < N; ++j)
for(int k = 0; k < N; ++k){
int s = A[i]+A[j]+A[k];
sums.insert(s);
}
set<int>::iterator it;
for (it=sums.begin(); it!=sums.end(); ++it)
{
if(sums.find(S-(*it)) != sums.end())
{
printSum(*it);
printSum(S-(*it));
return 0;
}
}
printf("%d", -1);
return 0;
}