Cod sursa(job #2294379)

Utilizator Costin23Sin Costin Costin23 Data 2 decembrie 2018 12:40:30
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include<iostream>
#include<fstream>

using namespace std;

int DP[5010][10010];

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

int main()
{
    int N, Gmax, val[5010], gr[5010], i,j;
    in>>N>>Gmax;
    for(i = 1; i<=N; i++)
        in>>gr[i]>>val[i];
    for(i=1;i<=N;i++)
    {
        for(j=0;j<=Gmax;j++)
        {
            if(i==1)
            {
                if(j>=gr[i])
                    DP[i][j]=val[i];
                else
                    DP[i][j]=0;
            }
            else
            {
                if(j<gr[i])
                    DP[i][j]=DP[i-1][j];
                else
                {
                    DP[i][j]=max(DP[i-1][j], val[i] + DP[i-1][j-gr[i]]);
                }
            }
        }
    }

    out<<DP[N][Gmax];
}