Cod sursa(job #541684)

Utilizator zeroblitz36FMI - Roscaneanu George zeroblitz36 Data 25 februarie 2011 13:17:27
Problema Loto Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<cstdio>
FILE *in,*out;
int v[100],man,s,flag=1,i,n,flag2=1;
void back(int q,int p,int x1,int x2,int x3,int x4,int x5,int x6)
{
	int flag1=1,i;
	if(q==0)for(i=0;i<n&&flag1&&flag2;i++){if(v[i]*6>=s)back(1,i,v[i],0,0,0,0,0);else flag1=0;}
    if(q==1)for(i=p;i<n&&flag1&&flag2;i++){if(x1+v[i]*5>=s)back(2,i,x1,v[i],0,0,0,0);else flag1=0;}
    if(q==2)for(i=p;i<n&&flag1&&flag2;i++){if(x1+x2+v[i]*4>=s)back(3,i,x1,x2,v[i],0,0,0);else flag1=0;}
    if(q==3)for(i=p;i<n&&flag1&&flag2;i++){if(x1+x2+x3+v[i]*3>=s)back(4,i,x1,x2,x3,v[i],0,0);else flag1=0;}
	if(q==4)for(i=p;i<n&&flag1&&flag2;i++){if(x1+x2+x3+x4+v[i]*2>=s)back(5,i,x1,x2,x3,x4,v[i],0);else flag1=0;}
    if(q==5)for(i=p;i<n&&flag2;i++)if(x1+x2+x3+x4+x5+v[i]==s){fprintf(out,"%d %d %d %d %d %d",x1,x2,x3,x4,x5,v[i]);flag2=0;}
}
int main()
{
	in=fopen("loto.in","r");
	fscanf(in,"%d %d",&n,&s);
	for(i=0;i<n;i++)
		fscanf(in,"%d",&v[i]);
	while(flag)
	{
		flag=0;
		for(i=0;i<n-1;i++)
			if(v[i]<v[i+1])
			{
				man=v[i];
				v[i]=v[i+1];
				v[i+1]=man;
				flag=1;
			}
	}
	out=fopen("loto.out","w");
	back(0,0,0,0,0,0,0,0);
	if(flag2==1)fprintf(out,"-1");
}