Pagini recente » Cod sursa (job #1529762) | Cod sursa (job #612190) | Cod sursa (job #313593) | Cod sursa (job #2525501) | Cod sursa (job #1077000)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,gr;
int a[201],c[75001],s[75001];
int main()
{
f >> n >> gr;
for (int i=1; i<=n;i++)
{
int x;
f >> x;
a[x]++;
}
c[0]=1;
for (int i=200; i>0;i--)
{
if (a[i])
{
for (int j=gr-i;j>=0;j--)
{
if (c[j])
{
for (int k=1; k<=a[i] && j+i*k<=gr && !c[j+i*k]; k++)
{
c[j+i*k] = c[j] + k;
s[j+i*k] = i;
}
}
}
}
}
int i;
for (i=gr;!s[i];i--);
g << i << " " << c[i]-1 << "\n";
for(;i != 0; i-=s[i]) g << s[i] << "\n";
return 0;
}