Cod sursa(job #3278733)
| Utilizator | Data | 20 februarie 2025 17:26:11 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 65 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
struct rucsac {
int w, p;
} item[5001];
int main(void) {
int n, maxG, dp[10001];
f >> n >> maxG;
for (int i = 0; i < n; i++) {
f >> item[i].w >> item[i].p;
}
dp[0] = 0;
int maxVal = 0;
for (int i = 0; i < n; i++) {
for (int j = maxG - item[i].w; j >= 0; j--) {
dp[j + item[i].w] = max(dp[j + item[i].w], dp[j] + item[i].p);
maxVal = max(maxVal, dp[j + item[i].w]);
}
}
g << maxVal;
}