Pagini recente » Cod sursa (job #3004604) | Borderou de evaluare (job #631036) | Cod sursa (job #3210560) | Cod sursa (job #588938) | Cod sursa (job #874594)
Cod sursa(job #874594)
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
int n,g,v[75005],i,a,j;
vector<int> p[75005];
int main()
{
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
scanf("%d%d",&n,&g);
for(i=1;i<=75000;i++) v[i]=20100;
v[0]=1;
for(j=1;j<=n;j++)
{
scanf("%d",&a);
for(i=g;i>=a;i--)
{
if(v[i-a]+1<v[i])
{
v[i]=v[i-a]+1;
p[i]=p[i-a];
p[i].push_back(a);
}
}
}
for(i=g;i>=0;i--) if(v[i]<20100) break;
printf("%d %d\n",i,v[i]-1);
sort(p[i].begin(),p[i].end());
a=p[i].size();
for(j=0;j<a;j++) printf("%d\n",p[i][j]);
return 0;
}