Pagini recente » Cod sursa (job #2978778) | Cod sursa (job #2673559) | Cod sursa (job #533892) | Cod sursa (job #1301782) | Cod sursa (job #2165007)
#include <fstream>
#include <algorithm>
#define MAXN 20005
#define LIM 75000
#include <vector>
using namespace std;
int N,W,i,j,d[MAXN],w[MAXN],nr,obj[MAXN];
//vector < vector <int> > v;
int main()
{
ifstream fin("ghiozdan.in");
ofstream fout("ghiozdan.out");
fin>>N>>W;
for(i=1;i<=N;i++)
{
fin>>w[i];
}
sort(w+1,w+1+N);
for(i=1;i<=N;i++)
{
obj[i]=LIM;
for(j=i;j>=0;j--)
{
if(d[j]+w[i]<=W){
d[i]=max(d[j]+w[i],d[i]);
if(d[j]+w[i]==d[i])
{
obj[i]=min(obj[j]+1,obj[i]);
// if(obj[i]==obj[j]+1)v[i].push_back(j);
}
}
}
//fout<<d[i]<<" ";
}
fout<<d[N]<<" "<<obj[N]<<"\n";
// for(i=0;i<v[N-1].size();i++)
// fout<<v[N-1][i]<<"\n";
return 0;
}