Pagini recente » Cod sursa (job #1741877) | Cod sursa (job #1644227) | Cod sursa (job #767115) | Cod sursa (job #731829) | Cod sursa (job #974207)
Cod sursa(job #974207)
#include<fstream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int x,n,gr,i,j,k,grmax,maxi,viz[75005],nr[220],next[75005];
int main()
{
f>>n>>gr;
for(i=1;i<=n;++i)
{
f>>x;
++nr[x];
maxi=max(maxi,x);
}
viz[0]=1;
for(i=maxi;i;--i)
if(nr[i])
for(j=gr-i;j>=0;--j)
if(viz[j])
for(k=1,x=i;k<=nr[i]&&j+x<=gr&&!viz[j+x];x+=i,++k)
{
viz[j+x]=viz[j]+k;
next[j+x]=i;
grmax=max(grmax,j+x);
}
g<<grmax<<' '<<viz[grmax]-1<<'\n';
while(grmax)
{
g<<next[grmax]<<'\n';
grmax-=next[grmax];
}
return 0;
}