Cod sursa(job #2704601)

Utilizator NeacsuMihaiNeacsu Mihai NeacsuMihai Data 10 februarie 2021 20:22:06
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <iostream>
#include <fstream>
#define NMAX 5000
#define GMAX 10000

using namespace std;

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

int W[NMAX + 1], P[NMAX + 1];
int dp[GMAX + 1];

int main()
{
    int N, G;
    fin>>N>>G;

    for(int i = 1; i <= N; i++){
        fin>> W[i] >> P[i];
    }

    for(int i = 1; i <= N; i++){
        for(int k = G; k >= 1; k--){
            if(k >= W[i]){
                dp[k] = max(dp[k], dp[k - W[i]] + P[i]);
            }
            //else dp[k] = dp[k];
        }
    }

    int rez = 0;
    for(int k = 1; k <= G; k++){
        rez = max(rez, dp[k]);
    }

    fout<<rez;
}