Pagini recente » Cod sursa (job #1608721) | Cod sursa (job #663064) | Cod sursa (job #1568252) | Cod sursa (job #2899414) | Cod sursa (job #51756)
Cod sursa(job #51756)
#include<stdio.h>
int n,i,i1,i2,i3,i4,i5,i6;
long int x[101],s,aux;
int heapdown(int ic,int nc);
int main()
{
FILE *f,*g;
f=fopen("loto.in","r");
g=fopen("loto.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%ld",&s);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&x[i]);
for(i=n/2;i>=1;i--)
heapdown(i,n);
for(i=n;i>=1;i--)
{ aux=x[i];x[i]=x[1];x[1]=aux;
heapdown(1,i-1);
}
for(i1=1;(i1<=n)&&(6*x[i1]<=s);i1++)
for(i2=i1;(i2<=n)&&(x[i1]+5*x[i1]<=s);i2++)
for(i3=i2;(i3<=n)&&(x[i1]+x[i2]+4*x[i3]<=s);i3++)
for(i4=i3;(i4<=n)&&(x[i1]+x[i2]+x[i3]+3*x[i4]<=s);i4++)
for(i5=i4;i5<=n;i5++)
for(i6=i5;i6<=n;i6++)
if(x[i1]+x[i2]+x[i3]+x[i4]+x[i5]+x[i6]==s)
{ fprintf(g,"%ld %ld %ld %ld %ld %ld\n",x[i1],x[i2],x[i3],x[i4],x[i5],x[i6]);
fcloseall();
return 0;
}
fprintf(g,"-1\n");
fcloseall();
return 0;
}
int heapdown(int ic,int nc)
{
int is;
if(2*ic>nc)return 0;
is=2*ic;
if(2*ic<nc&&x[2*ic+1]>x[2*ic])is=2*ic+1;
if(x[is]>x[ic]){aux=x[is],x[is]=x[ic];x[ic]=aux;heapdown(is,nc);}
return 0;
}