Pagini recente » Cod sursa (job #3284829) | Cod sursa (job #3251017) | Cod sursa (job #1210170) | Cod sursa (job #35967) | Cod sursa (job #885143)
Cod sursa(job #885143)
#include <fstream>
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int v[20001],w[75001][2],s[20001];
int n,G,i,j,h,k;
int main()
{
fin>>n>>G;
for (i=1;i<n;i++)
{
fin>>v[i];
for (j=G;j>v[i];j--)
{if (w[j-v[i]][0]) if (w[j-v[i]][0]+1<w[j][0]||w[j][0]==0)
{
w[j][0]=w[j-v[i]][0]+1;
w[j][1]=v[i];
}
}
j=v[i];
if (w[j][0]==0||1<w[j][0])
{
w[j][0]=1;
w[j][1]=0;
}
}
fin>>v[n];
for (j=G;j>v[n];j--)
if (w[j-v[n]][0]) if (w[j-v[n]][0]+1<w[j][0]||w[j][0]==0)
{
w[j][0]=w[j-v[n]][0]+1;
w[j][1]=v[n];
break;
}
for (j=G;;j--)
{
if (w[j][0]) break;
}
fout<<j<<" "<<w[j][0]<<"\n";
while (w[j][1]!=0)
{
fout<<w[j][1]<<"\n";
j=j-w[j][1];
}
fout<<j;
}