Cod sursa(job #2832999)

Utilizator Maria-BorcaBorca Maria Maria-Borca Data 14 ianuarie 2022 16:35:03
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
#include <stdlib.h>

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

struct obiect {
    int w, p;
}obiecte[5005];

int d[5005][10005];

int main() {
    int n, g;
    fin >> n >> g;
    for (int i = 1; i <= n; i ++)
        fin >> obiecte[i].w >> obiecte[i].p;
    for (int i = 1; i <= n; i ++) {
        if (i == 1)
            d[i][obiecte[i].w] = obiecte[i].p;
        else {
            for (int cw = 1; cw <= g; cw ++) {
                if (obiecte[i].w <= cw) {
                    d[i][cw] = max(d[i - 1][cw], d[i - 1][cw - obiecte[i].w] + obiecte[i].p);
                }
            }
        }
    }

    int Pmax = d[n][g];
    fout << Pmax;

    return 0;
}