Pagini recente » Cod sursa (job #2264253) | Cod sursa (job #568868) | Cod sursa (job #1504560) | Cod sursa (job #1318848) | Cod sursa (job #2581948)
#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
#define maxn 101
long sol[maxn*maxn*maxn];
long v[maxn];
long n,s;
int sort(const void *a,const void *b)
{
return *(long *) a- *(long *)b;
}
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","rt",stdin);
freopen("loto.out","wt",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];
}
// qsort(sol,nr,sizeof(sol[0]),sort);
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;
}