Cod sursa(job #2850309)
| Utilizator | Data | 16 februarie 2022 16:43:08 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 25 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int n, W;
int vi[5001], wi[5001];
int dp[5001][10001];
int main()
{
f >> n >> W;
for (int i = 0; i < n; i++)
f >> wi[i] >> vi[i];
for (int i = 1; i <= n; i++)
for (int j = 1; j <= W; j++)
if (wi[i - 1] <= j)
dp[i][j] = max(vi[i - 1] + dp[i - 1][j - wi[i - 1]], dp[i - 1][j]);
else dp[i][j] = dp[i - 1][j];
g << dp[n][W];
}
