Cod sursa(job #3355451)

Utilizator bianca.mMihail Bianca-Maria bianca.m Data 22 mai 2026 20:10:45
Problema Problema rucsacului Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <vector>
#include <algorithm>
#include<fstream>

using namespace std;

int main()
{
    ifstream fin("rucsac.in");
    ofstream fout("rucsac.out");
    int n, g;
    fin >> n >> g;
    vector<pair<int, int>> wp(n + 1);
    for(int i = 1; i <= n; i++) {
        fin >> wp[i].first>>wp[i].second;
    }
    vector<vector<int>> dp(n + 1, vector<int>(g + 1, 0));
    for(int i = 1; i <= n; i++) {
        for(int j = 0; j <= g; j++) {
            if (j - wp[i].first >= 0) {
                dp[i][j] = max({dp[i - 1][j], dp[i - 1][j - wp[i].first] + wp[i].second});

            } else {
                dp[i][j] = dp[i - 1][j];
            }
        }
    }

    fout << dp[n][g] << "\n";
    return 0;


}