Cod sursa(job #187643)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 4 mai 2008 22:55:03
Problema Loto Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 kb
# include <stdio.h>      
int a[1000],s,i,j,k,ok=0,n,m,z,l,q,max,aux,s1;      
int main ()      
{      
freopen ("loto.in","r",stdin);      
freopen ("loto.out","w",stdout);      
scanf ("%i",&n);      
scanf ("%i",&s);      
for (i=0;i<n;i++)      
scanf ("%i",&a[i]);      
for (i=0;i<n-1;i++)      
for (j=i+1;j<n;j++)      
if (a[i]>a[j])      
{      
aux=a[i];      
a[i]=a[j];      
a[j]=aux;      
}      
if (a[n-1]*6<s)
printf ("-1");
else
{
q=0 ;      
for (i=q;i<n;i++)      
{if (ok==1) break;      
for (j=i;j<n;j++)      
{if (ok==1) break;      
for (k=j;k<n;k++)      
{if (ok==1) break;      
for (l=k;l<n;l++)      
{if (ok==1) break;      
for (z=l;z<n;z++)      
{if (ok==1) break;      
for (m=z;m<n;m++)      
{      
s1=a[i]+a[j]+a[k]+a[l]+a[z]+a[m];      
if (s1==s)      
{      
printf ("%i ",a[i]);      
printf ("%i ",a[j]);      
printf ("%i ",a[k]);      
printf ("%i ",a[l]);      
printf ("%i ",a[z]);      
printf ("%i ",a[m]);      
ok=1;      
break;      
}      
if (s1-a[m]+a[n-1]<s)      
{
m=n-1;      
if (a[i]+a[j]+a[k]+a[l]+a[n-1]+a[n-1]<s)      
{
z=n-1;      
if (a[i]+a[j]+a[k]+(a[n-1]*3)<s)
{
l=n-1;
if (a[i]+a[j]+(a[n-1]*4)<s)
k=n-1;
}
}
}

}      
if (a[i]+a[j]+a[k]+a[l]+a[n-1]+a[n-1]<s)      
z=n-1;      
}      
if (a[i]+a[j]+a[k]+(a[n-1]*3)<s)
l=n-1;
}      
if (a[i]+a[j]+(a[n-1]*4)<s)
k=n-1;
}      
if (a[i]+(a[n-1]*5)<s)
j=n-1;
}      
}      
if (ok==0)      
printf ("-1");      
}
return 0;      
}