Pagini recente » Cod sursa (job #1784972) | Cod sursa (job #1364786) | Cod sursa (job #2851752) | Cod sursa (job #697328) | Cod sursa (job #318909)
Cod sursa(job #318909)
#include <stdio.h>
#include <stdlib.h>
int n,s,a[110],b[1001000];
int cmp(const void *p, const void *q)
{
return ( *(int*)p - *(int*)q );
}
void scrie(int x)
{
int i,j,k;
for (i=1; i<=n; ++i)
for (j=i; j<=n; ++j)
for (k=j; k<=n; ++k)
if (a[i]+a[j]+a[k]==b[x])
{
printf("%d %d %d ",a[i],a[j],a[k]);
return;
}
}
int main()
{
freopen("loto.in","r",stdin);
freopen("loto.out","w",stdout);
scanf("%d%d",&n,&s);
int i,j,k,l;
for (i=1; i<=n; ++i) scanf("%d",&a[i]);
l=0;
for (i=1; i<=n; ++i)
for (j=i; j<=n; ++j)
for (k=j; k<=n; ++k)
b[++l]=a[i]+a[j]+a[k];
qsort(b+1,l, sizeof(int),cmp);
k=l;
for (i=1; i<=l && 0<k; ++i)
{
while(b[i]+b[k]>s && k>0) k--;
if (k<=0) break;
if (b[i]+b[k]==s)
{
scrie(i);
scrie(k);
return 0;
}
}
printf("-1\n");
return 0;
}