Pagini recente » Cod sursa (job #2127409) | Cod sursa (job #778025) | Cod sursa (job #1162263) | Cod sursa (job #593293) | Cod sursa (job #993808)
Cod sursa(job #993808)
#include<fstream>
#include<algorithm>
using namespace std;
int val,maxi,n,gm,i,j,k,nr,b[20013],v[75013],pot[75013],ap[213];
int main()
{
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
f>>n>>gm;
for(i=1;i<=n;i++)
{
f>>val;
ap[val]++;
}
pot[0]=1;
for(i=200;i>=1;i--)
if(ap[i])
{
for(j=gm-i;j>=0;j--)
if(pot[j])
{
for(k=1;k<=ap[i]&&k*i+j<=gm;k++)
{
if(pot[j+k*i]==0)
{
pot[j+k*i]=pot[j]+k;
v[j+k*i]=i;
}
else break;
}
}
}
for(i=gm;i>=1;i--)
if(pot[i]) break;
maxi=i;
g<<maxi<<" "<<pot[maxi]-1<<'\n';
while(maxi)
{
g<<v[maxi]<<'\n';
maxi-=v[maxi];
}
f.close();
g.close();
return 0;
}