Pagini recente » Prezentare infoarena | Cod sursa (job #1801966) | Cod sursa (job #1134963) | Cod sursa (job #1414864) | Cod sursa (job #2361187)
#include<cstdio>
#include<vector>
using namespace std;
struct help
{
int nr;
vector<int>v;
};
help d[75005];
int main()
{
freopen("ghiozdan.in","r",stdin);
freopen("ghiozdan.out","w",stdout);
int n,G,g,p,i,last,j,max1=0;
d[0].nr=0;
scanf("%d%d",&n,&G);
for(i=1;i<=G;i++)
d[i].nr=100000;
last=0;
for(i=1;i<=n;i++)
{
scanf("%d",&g);
for(j=last;j>=0;j--)
{
if(j+g<=G)
{
if(d[j].nr!=100000)
{
if(d[j].nr+1<d[j+g].nr)
{
d[j+g].nr=d[j].nr+1;
d[j+g].v=d[j].v;
d[j+g].v.push_back(g);
if(j+g>last) last=j+g;
}
}
}
}
}
for(i=G;i>=0;i--)
{
if(d[i].nr!=100000)
{
printf("%d %d\n",i,d[i].nr);
for(j=0;j<d[i].v.size();j++)
printf("%d\n",d[i].v[j]);
break;
}
}
return 0;
}