Cod sursa(job #2285485)
| Utilizator | Data | 18 noiembrie 2018 17:22:10 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <cstdio>
#include <cstring>
#define WMAX 10005
using namespace std;
int n, w;
int dp[WMAX];
int main() {
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
scanf("%d %d", &n, &w);
memset(dp, 0, sizeof(dp));
int wi, pi;
for (int i = 0; i < n; i++) {
scanf("%d %d", &wi, &pi);
for (int j = w; j >= wi; j--) {
if (dp[j] < dp[j - wi] + pi) {
dp[j] = dp[j - wi] + pi;
}
}
}
printf("%d", dp[w]);
}
