Pagini recente » Cod sursa (job #209537) | Cod sursa (job #1190235) | Cod sursa (job #115329) | Cod sursa (job #1147239) | Cod sursa (job #2523749)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int dp[75305],i,j,n,g,maxim,val,u[75305],cnt;
int main()
{
fin>>n>>g>>val;
for(i=2;i<=n;i++)
{
fin>>val;
if(val<=g)
{
for(j=maxim;j>=1;j--)
{
if(dp[j]>0)
{
if(dp[j+val]>dp[j]+1||dp[j+val]==0)
{
dp[j+val]=dp[j]+1;
u[j+val]=j;
}
}
}
dp[val]=1;
maxim+=val;
if(maxim>g)maxim=g;
}
}
for(i=g;i>=1;i--)
{
if(dp[i]>0)break;
}
fout<<i<<" "<<dp[i]<<endl;
while(u[i]>0)
{
fout<<i-u[i]<<endl;
i=u[i];
}
fout<<i-u[i];
}