#include <algorithm> #include <iostream> #include <cstring> using namespace std; int main() { int n, m; 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.