Cod sursa(job #2921920)

Utilizator tzancauraganuTzanca Uraganu tzancauraganu Data 2 septembrie 2022 13:51:11
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <cassert>
#include <cstring>
#include <set>
#include <unordered_map>
#include <memory>
#include <deque>
#include <queue>
#include <iomanip>
 
using namespace std;


ifstream f("rucsac.in");
ofstream g("rucsac.out");
 

 
int main() {

    int N, W;
    f >> N >> W;
    vector<int> dp(W + 1);

    for (int i = 0; i < N; i++) {
        int w, p;
        f >> w >> p;

        for (int tw = W; tw >= w; tw--)
            dp[tw] = max(dp[tw], dp[tw - w] + p);
    }

    for (int tw = 0; tw <= W; tw++)
        dp[tw] = max(dp[tw], dp[tw - 1]);
    
    g << dp[W] << '\n';

 
    f.close();
    g.close();
    return 0;
}