#include <algorithm> #include <cstring> #include <iostream> using namespace std; int main() { int n, m; while (cin >> n >> m) { int arr[n][2]; int dp[m + 1]; memset(dp, 0, sizeof(dp)); for (int i = 0; i < n; i++) cin >> arr[i][0] >> arr[i][1]; for (int i = 0; i < n; i++) for (int j = m; j >= arr[i][0]; j--) dp[j] = max(dp[j], dp[j - arr[i][0]] + arr[i][1]); cout << dp[m] << endl; } } |
Double click to view unformatted code.