Pagini recente » Cod sursa (job #2406610) | Cod sursa (job #699126) | Cod sursa (job #108687) | Cod sursa (job #3260021) | Cod sursa (job #1670221)
#include <fstream>
using namespace std;
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,gr,x,i,j,k,v[75001],t[75001],b[75001];
int main()
{ f>>n>>gr;
for (i=1;i<=n;++i) {
f>>x;
++v[x];}
b[0]=1;
for (i=200;i>=1;--i)
if (v[i]!=0)
for (k=gr-i;k>=0;--k)
if (b[k]!=0)
for (j=1;j<=v[i] && k+i*j<=gr;++j)
if (b[k+i*j]==0) {
b[k+i*j]=b[k]+j;
t[k+i*j]=i;}
else
break;
while (b[gr]==0)
--gr;
g<<gr<<" "<<b[gr]-1;
while (b[gr]!=1) {
g<<'\n'<<t[gr];
gr-=t[gr];
}
return 0;
}