Pagini recente » Cod sursa (job #1512027) | Cod sursa (job #170637) | Cod sursa (job #2084007) | Cod sursa (job #1873240) | Cod sursa (job #2031012)
#include <fstream>
using namespace std;
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
short int a[75007];
int ct[205];
int n,g;
short int mini ( short int c,short int b )
{
if(c>b) return b;
else return c;
}
int main()
{ fin>>n>>g;
int i,x,j,z;
short int l;
for(i=1;i<=n;++i)
{ fin>>x;
ct[x]++;
}
for(j=0;j<=g;++j)
a[j]=-1;
a[0]=0;
for(i=1;i<=200;++i)
if(ct[i])
for(j=g;j>=0;--j)
if(a[j]!=-1)
{ z=j+i; l=1; a[j]=a[j];
while(z<=g && l<=ct[i])
{ if(a[z]==-1)
a[z]=a[j]+l;
else
a[z]=mini(a[j]+l,a[z]);
++l;
z+=i;
}
}
for(i=g;i>=0;--i)
if(a[i]!=-1)
break;
fout<<i<<" "<<a[i];
return 0;
}