Pagini recente » Cod sursa (job #3032891) | Cod sursa (job #111540) | Cod sursa (job #1195887) | Cod sursa (job #3040643) | Cod sursa (job #885090)
Cod sursa(job #885090)
#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];
if (j>=s[0])
{
s[0]=j;
s[1]=w[j][0];
h=j;
for (k=2;w[h][1]!=0;h=h-w[h][1]) s[k++]=w[h][1];
}
}
}
j=v[i];
if (w[j][0]==0||1<w[j][0])
{
w[j][0]=1;
w[j][1]=0;
if (j>=s[0])
{
s[0]=v[i];
s[1]=1;
s[2]=v[i];
}
}
}
fout<<s[0]<<" "<<s[1]<<"\n";
for (k=2;k<=s[1]+1;k++) fout<<s[k]<<"\n";
}