Cod sursa(job #3215925)

Utilizator maiaauUngureanu Maia maiaau Data 15 martie 2024 14:26:25
Problema Problema rucsacului Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
using pii = pair<int,int>;
#define pb push_back

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

const int N = 1e5+3;

int n, mxw, t;
vector<int> W, P;
vector<vector<int>> dp;

int main(){
    fin >> n >> mxw;
    W.resize(n+2); P.resize(n+2);
    dp.resize(2, vector<int>(mxw + 2));
    for (int i = 1; i <= n; i++) fin >> W[i] >> P[i];

    for (int i = 1; i <= n; i++, t ^= 1)    
        for (int w = 0; w <= mxw; w++){
            dp[t][w] = dp[!t][w]; 
            if (W[i] <= w) dp[t][w] = max(dp[t][w], dp[!t][w-W[i]] + P[i]);
        }
    fout << dp[!t][mxw];

    return 0;
}