Pagini recente » Cod sursa (job #368084) | Cod sursa (job #1256407) | Cod sursa (job #1785654) | Cod sursa (job #2971631) | Cod sursa (job #126730)
Cod sursa(job #126730)
#include <stdio.h>
FILE *in,*o;
int f,g[100],a,i,n,gmax,nm,p,q,j,w[100];
int main()
{
in=fopen("ghiozdan.in","r");
o=fopen("ghiozdan.out","w");
fscanf(in,"%d %d",&n,&gmax);
for (i=1;i<=n;i++)
fscanf(in,"%d",&g[i]);
f=1;
while (f==1)
{
f=0;
for (i=1;i<n;i++)
if (g[i]>g[i+1])
{
a=g[i];
g[i]=g[i+1];
g[i+1]=a;
f=1;
}
}
p=gmax;
for (i=1;i<=n && gmax>0;i++)
if(g[i]<=gmax)
{
gmax=gmax-g[i];
}
f=1;
while (f==1)
{
f=0;
for (i=1;i<n;i++)
if (g[i]<g[i+1])
{
a=g[i];
g[i]=g[i+1];
g[i+1]=a;
f=1;
}
}
q=p-gmax;
fprintf(o,"%d",q);
j=1;
do
{
for (i=j;i<=n && q!=0;i++)
if(g[i]<=q)
{
q=q-g[i];
nm++;
w[i]=g[i];
}
j++;
}
while (q!=0);
fprintf(o," %d\n",nm);
for (i=1;i<=n;i++)
if (w[i]!=0)
fprintf(o,"%d\n",w[i]);
fclose(in);
fclose(o);
return 0;
}