Cod sursa(job #2251793)

Utilizator NicuCNicu Capatina NicuC Data 1 octombrie 2018 22:48:11
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("rucsac.in");
ofstream fout("rucsac.out");

int n,Gmax,G,V,i,j,pd[3][10001],W[5001],P[5001],V1,h;

int main()
{
    fin>>n>>Gmax;
    for(i=1; i<=n; i++)
    {
        fin>>G>>V;
        if(V1 == 0)
            V1=V;
        W[i]=G;
        P[i]=V;
        pd[2][G]=V1;
    }
    h=1;
    i=2;
    while(h<=n)
    {
        for(j=1; j<=Gmax; j++)
            if(j-W[h]>= 0)
                pd[i][j]=max(pd[i-1][j],pd[i-1][j-W[h]]+P[h]);
            else
                pd[i][j]=pd[i-1][j];
        for(j=1;j<=Gmax;j++)
            pd[i-1][j]=pd[i][j];
        h++;
    }
    fout<<pd[2][Gmax];
    return 0;
}