Pagini recente » Cod sursa (job #366449) | Cod sursa (job #337147) | Cod sursa (job #1883487) | Cod sursa (job #524981) | Cod sursa (job #156831)
Cod sursa(job #156831)
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#define maxn 101
using namespace std;
long sol[maxn * maxn * maxn];
long v[maxn];
long n, s;
void afisare(long a) {
long i, j, l;
for( i = 1;i <= n; ++i) {
for(j = 1;j <= n; ++j) {
for(l = 1;l <= n; ++l) {
if(v[i] + v[j] + v[l] == sol[a]) {
printf("%ld %ld %ld",v[i],v[j],v[l]);
return ;
}
}
}
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
long i, j, l, t;
scanf("%ld %ld", &n, &s);
for(i = 1;i <= n; ++i)
scanf("%ld", &v[i]);
long nr = 0;
for(i = 1;i <= n; ++i) {
for(j = 1; j <= n; ++j) {
for(l = 1;l <= n; ++l) {
sol[nr++]=v[i] + v[j] + v[l];
}
}
}
sort(sol, sol + nr);
t = nr - 1;
for(i = 0;i < nr && t >= 0; ++i) {
while(sol[i] + sol[t] > s && t >= 0) {
t--;
}
if (t < 0) {
break;
}
if (sol[i] + sol[t] == s) {
afisare(i);
printf(" ");
afisare(t);
printf("\n");
return 0;
}
}
printf("-1\n");
return 0;
}