Pagini recente » Cod sursa (job #357523) | Cod sursa (job #2551165) | Cod sursa (job #1412600) | Cod sursa (job #975364) | Cod sursa (job #701606)
Cod sursa(job #701606)
#include <cstdio>
#include <algorithm>
using namespace std;
#define maxn 110
int n, nr, sum, p2, v[maxn];
pair<int, pair<int, int> > s[maxn*maxn*maxn];
int main()
{
freopen("loto.in", "r", stdin);
freopen("loto.out", "w", stdout);
scanf("%d%d", &n, &sum);
for(int i=1; i<=n; ++i)
scanf("%d", &v[i]);
for(int i=1; i<=n; ++i)
for(int j=i; j<=n; ++j)
for(int k=j; k<=n; ++k)
s[++nr]=make_pair(v[i]+v[j]+v[k], make_pair(v[i], v[j]));
s[++nr]=make_pair(-1000000000, make_pair(0, 0));
s[++nr]=make_pair(1000000000, make_pair(0, 0));
sort(s+1, s+nr+1);
p2=nr;
for(int i=2; i<nr; ++i)
{
while(s[i].first+s[p2].first>sum)
--p2;
if(s[i].first+s[p2].first==sum)
{
printf("%d %d %d %d %d %d\n", s[i].second.first, s[i].second.second, s[i].first-s[i].second.first-s[i].second.second,
s[p2].second.first, s[p2].second.second, s[p2].first-s[p2].second.first-s[p2].second.second);
return 0;
}
}
printf("-1\n");
return 0;
}