Cod sursa(job #2574565)

Utilizator bogdanvladmihaiBogdan Vlad-Mihai bogdanvladmihai Data 5 martie 2020 23:52:04
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>

using namespace std;

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

const int MAX_N = 5e3 + 5;
const int MAX_G = 1e4 + 5;

int n, g;

int dp[2][MAX_G];

int w[MAX_N], p[MAX_N];

int main() {
  int ans;
  fin >> n >> g;
  for (int i = 1; i <= n; ++i) {
    fin >> w[i] >> p[i];
  }
  dp[0][0] = 0;
  ans = 0;
  for (int i = 1; i <= n; ++i) {
    for (int j = w[i]; j <= g; ++j) {
      dp[i % 2][j] = dp[1 - i % 2][j];
      dp[i % 2][j] = max(dp[i % 2][j], dp[1 - i % 2][j - w[i]] + p[i]);
    }
  }
  fout << dp[n % 2][g] << "\n";
  return 0;
}