|
@@ -1,7 +1,8 @@
|
|
-#include <algorithm>
|
|
|
|
#include <cstdio>
|
|
#include <cstdio>
|
|
#include <cstring>
|
|
#include <cstring>
|
|
|
|
|
|
|
|
+#define MAX(x, y) ((x) > (y) ? (x) : (y))
|
|
|
|
+
|
|
using namespace std;
|
|
using namespace std;
|
|
|
|
|
|
const int N = 3402, M = 12880;
|
|
const int N = 3402, M = 12880;
|
|
@@ -17,6 +18,6 @@ int main() {
|
|
for (int i = 0; i <= m; i++) dp[i] = W[0] <= i ? D[0] : 0;
|
|
for (int i = 0; i <= m; i++) dp[i] = W[0] <= i ? D[0] : 0;
|
|
for (int i = 2; i <= n; i++)
|
|
for (int i = 2; i <= n; i++)
|
|
for (int j = m; 0 < j; j--)
|
|
for (int j = m; 0 < j; j--)
|
|
- if (W[i - 1] <= j) dp[j] = max(dp[j], dp[j - W[i - 1]] + D[i - 1]);
|
|
|
|
|
|
+ if (W[i - 1] <= j) dp[j] = MAX(dp[j], dp[j - W[i - 1]] + D[i - 1]);
|
|
printf("%d\n", dp[m]);
|
|
printf("%d\n", dp[m]);
|
|
}
|
|
}
|