Pagini recente » Cod sursa (job #2104928) | Cod sursa (job #445024) | Cod sursa (job #1100520) | Cod sursa (job #166600) | Cod sursa (job #2030786)
#include <fstream>
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
int a[205][75007];
int ct[205];
int n,g;
int main()
{ fin>>n>>g;
int i,x,j,z,l;
for(i=1;i<=n;++i)
{ fin>>x;
ct[x]++;
}
for(i=0;i<=200;++i)
for(j=0;j<=g;++j)
a[i][j]=-1;
a[0][0]=0;
for(i=1;i<=200;++i)
for(j=g;j>=0;--j)
if(a[i-1][j]!=-1)
{ z=j+i; l=1; a[i][j]=a[i-1][j];
if(ct[i])
while(z<=g && l<=ct[i])
{ if(a[i][z]==-1)
a[i][z]=a[i][j]+l;
else
a[i][z]=min(a[i][j]+l,a[i][z]);
++l;
z+=i;
}
}
for(i=g;i>=0;--i)
if(a[200][i]!=-1)
break;
fout<<i<<" "<<a[200][i];
return 0;
}