Cod sursa(job #2734399)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 31 martie 2021 20:06:15
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <algorithm>
#include <stdio.h>

#define MaxN 5005
#define MaxG 10005

using namespace std;

FILE *file_in = fopen("rucsac.in", "r");
FILE *file_out = fopen("rucsac.out", "w");

int d[MaxN][MaxG], N, G, v, w, Max = 0;

int main() {

    fscanf(file_in, "%d %d", &N, &G);

    for (int i = 0; i < N; i++) {
        fscanf(file_in, "%d %d", &w, &v);
        for (int j = 0; j <= G; j++) {
            d[i + 1][j] = max(d[i + 1][j], d[i][j]);
            Max = max(d[i + 1][j], Max);
            if (j + w <= G) {
                d[i + 1][j + w] = max(d[i + 1][j + w], d[i][j] + v);
                Max = max(d[i + 1][j + w], Max);
            }
        }
    }

    fprintf(file_out, "%d\n", Max);

    return 0;
}