Cod sursa(job #3354388)

Utilizator Ana-Maria10Tomoiala Ana-Maria Ana-Maria10 Data 17 mai 2026 19:51:16
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

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

int main() {
    int n, W;
    fin>>n>>W;
    vector<int>p(n + 1, 0);
    vector<int>w(n + 1, 0);
    vector<vector<int>>dp(n + 1, vector<int>(W + 1, 0));
    for (int i = 1; i <= n; i++) {
        fin>>w[i]>>p[i];
    }
    for (int k = 0; k <= W; k++) {
        dp[0][k] = 0;
    }
    for (int i = 1; i <= n; i++) {
        for (int k = 0; k <= W; k++) {
            if (w[i] <= k) {
                dp[i][k] = dp[i - 1][k - w[i]] + p[i];
            }
            dp[i][k] = max(dp[i][k], dp[i - 1][k]);
        }
    }
    fout<<dp[n][W];
    return 0;
}