Pagini recente » Cod sursa (job #1897827) | Cod sursa (job #3314137) | Cod sursa (job #2216414) | Cod sursa (job #2041853) | Cod sursa (job #349785)
Cod sursa(job #349785)
#include <stdio.h>
#include <stdlib.h>
int a1,a2,a3,n,s,a[110],b[1001000];
int cmp(const void *p, const void *q)
{return ( *(int*)p - *(int*)q );}
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)
{for(a1=1;a1<=n;++a1)
for (a2=a1; a2<=n; ++a2)
for (a3=a2; a3<=n; ++a3)
if (a[a1]+a[a2]+a[a3]==b[i])
printf("%d %d %d ",a[a1],a[a2],a[a3]);
for(a1=1;a1<=n;++a1)
for (a2=a1; a2<=n; ++a2)
for (a3=a2; a3<=n; ++a3)
if (a[a1]+a[a2]+a[a3]==b[k])
printf("%d %d %d ",a[a1],a[a2],a[a3]);
return 0;}}
printf("-1\n");
return 0;
}