Pagini recente » Cod sursa (job #1082568) | Cod sursa (job #1961376) | Cod sursa (job #994733) | Cod sursa (job #3254056) | Cod sursa (job #1157084)
#include <algorithm>
#include <cstdio>
using namespace std;
const int N=75005;
int v[205], dp[N], nxt[N];
int main()
{
freopen("ghiozdan.in", "r", stdin);
freopen("ghiozdan.out", "w", stdout);
int n, m, i, j, k;
scanf("%d%d", &m, &n);
while(m--)
{
scanf("%d", &k);
v[k]++;
}
dp[0]=1;
for(i=200;i;i--)
{
if(!v[i]) continue;
for(j=n-i;j>=0;j--)
{
if(!dp[j]) continue;
for(k=1;k<=v[i]&&j+k*i<=n&&!dp[j+k*i];k++)
{
dp[j+k*i]=dp[j]+k;
nxt[j+k*i]=i;
}
}
}
for(i=n;!dp[i];i--);
printf("%d %d\n", i, dp[i]-1);
for(;i;i-=nxt[i]) printf("%d\n", nxt[i]);
}