Cod sursa(job #2165007)

Utilizator racheriunicolaechowchow racheriunicolae Data 13 martie 2018 10:47:22
Problema Ghiozdan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}