Pagini recente » Cod sursa (job #967908) | Cod sursa (job #645528) | Cod sursa (job #1113947) | Cod sursa (job #1227367) | Cod sursa (job #503052)
Cod sursa(job #503052)
#include <stdio.h>
#include <algorithm>
using namespace std;
#define nmax 105
long x[nmax*nmax*nmax];
long nrx, i, j, k, n, s, t, p;
long v[nmax];
void afis(long x)
{
long i,j,k;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
for (k=1;k<=n;k++)
if (v[i]+v[j]+v[k]==x)
{
printf("%ld %ld %ld",v[i],v[j],v[k]);
return;
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
for (i=1;i<=n;i++)
scanf("%d", &v[i]);
for (i = 1; i<=n; ++i)
for (j = 1; j<=n; ++j)
for (k = 1; k<=n; ++k)
{
nrx++;
x[nrx]=v[i]+v[j]+v[k];
}
sort(x+1,x+nrx+1);
t = nrx;
p=1;
while (p<=t)
{
while (x[p]+x[t]>s && t>0)
t--;
if (x[p]+x[t]==s)
{
afis(x[p]);
printf(" ");
afis(x[t]);
printf("\n");
return 0;
}
if (t<=0)
break;
while (x[p]+x[t]<s &&p <=nrx)
p++;
}
printf("-1\n");
return 0;
}