Cod sursa(job #42987)

Utilizator lucibitLucian Onea lucibit Data 29 martie 2007 18:25:38
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
#define maxs 1000000
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;}