Pagini recente » Cod sursa (job #1358634) | Cod sursa (job #516333) | Cod sursa (job #456386) | Cod sursa (job #957088) | Cod sursa (job #42986)
Cod sursa(job #42986)
#include<stdio.h>
#define maxs 600000000
long S,A[maxs][7],v[100];
int n,s[maxs][7];
int main ()
{int i,t,k;
long j,Max;
freopen("loto.in","r",stdin);
scanf("%d %ld\n",&n,&S);
Max=0;
for (i=1;i<=n;i++ ) {scanf("%ld ",&v[i]); s[v[i]][1]=1;A[v[i]][1]=v[i]; if(v[i]>Max) Max=v[i];}
freopen("loto.out","w",stdout);
if(6*Max>=S)
{
for(i=1;i<=n && !s[S][6];i++)
{ for(j=1;j<=S && !s[S][6];j++)
for(k=1;k<=5 && !s[S][6];k++)
if(s[j][k] && (j+v[i]<=S)) {s[j+v[i]][k+1]=1; A[j+v[i]][k+1]=v[i];}
}
long i1,i2;
i1=S;
i2=A[S][6];
for(i=6;i>=1;i--)
{printf("%ld ",i2);
i1=i1-A[i1][i];
i2=A[i1][i-1];}
} else printf("-1\n");
return 0;}