Cod sursa(job #157959)

Utilizator polix2007Cojan Paul Catalin polix2007 Data 13 martie 2008 13:15:02
Problema Loto Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<values.h>
int v[101],n,u[101];
long S,s;
int valid(int k)
{int i;
 s=0;
 for(i=1;i<=k;i++)
		s+=v[i];
 if(s>S) return 0;
 return 1;
}
void afis(int k)
{int i;
 FILE*g=fopen("loto.out","w");
 for(i=1;i<=k;i++)
	fprintf(g,"%d ",v[i]);
 fclose(g);
}
void bkt(int k)
{int i;
 for(i=1;i<=n;i++)
	{if(k<=6) {v[k]=u[i];
		   if(valid(k)) if(k==6&&s==S) {afis(k);break;}
				else bkt(k+1);}
	 }
}
int main()
{int i,max=0,min=MAXINT;
 FILE*f=fopen("loto.in","r");
 FILE*g=fopen("loto.out","w");
 fscanf(f,"%d %ld",&n,&S);
 for(i=1;i<=n;i++)
	{fscanf(f,"%d",&u[i]);
	 if(u[i]>max) max=u[i];
	 if(u[i]<min) min=u[i];}
 if(S>6*max||S<6*min) fprintf(g,"-1");
 else bkt(1);
 fcloseall();
 return 0;
}