Pagini recente » Cod sursa (job #3238757) | Cod sursa (job #2647952) | Cod sursa (job #2174461) | Cod sursa (job #2634548) | Cod sursa (job #3226653)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ghiozdan.in");
ofstream fout("ghiozdan.out");
int n,G,i,g,x,j,F[201],D[75003],l;
pair <int,int> T[75003];
int main()
{
fin>>n>>G;
for(i=1;i<=n;i++)
{
fin>>x;
F[x]++;
}
for(i=200;i>=1;i--)
if(F[i])
for(j=G;j>0;j--)
if(!D[j])
for(l=1;l<=F[i];l++)
{
if(j-l*i<0)
break;
if(D[j-l*i]||j-l*i==0)
{
D[j]=D[j-l*i]+l;
T[j]={i,l};
break;
}
}
g=G;
while(!D[g--]);
g++;
fout<<g<<' '<<D[g]<<'\n';
while(g)
{
for(j=1;j<=T[g].second;j++)
fout<<T[g].first<<'\n';
g-=T[g].first*T[g].second;
}
return 0;
}