Cod sursa(job #920423)

Utilizator heracleRadu Muntean heracle Data 20 martie 2013 13:06:22
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;
ifstream in ("rucsac.in");
ofstream out ("rucsac.out");
const int N=5001;
int g[N],p[N];
int pm[2*N+1];
int main()
{
    int n,g2,i,max=0,j;
    in>>n>>g2;
    for(i=1; i<=n; i++)
        in>>g[i]>>p[i];

    for(i=1; i<=n; i++)
    {
        for(j=g2-g[i]; j>0; j--)
            if(pm[j]!=0 && pm[j]+p[i]>pm[j+g[i]])
                pm[j+g[i]]=pm[j]+p[i];
        if(pm[g[i]]<p[i])
            pm[g[i]]=p[i];
    }
    for(i=1; i<=g2; i++)
    {
      //  out<<pm[i]<<"\n";
        if(pm[i]>max)
            max=pm[i];
    }


    out<<max;
    return 0;
}