성우리뷰
배낭
두원공대88학번뚜뚜
2020. 9. 3. 19:05
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int arr[101][100001];
pair<int, int> item[101];
int n, k, w, v;
int func() {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= k; j++) {
if (item[i].first > j)
arr[i][j] = arr[i - 1][j];
else
arr[i][j] = max(arr[i - 1][j], arr[i - 1][j - item[i].first]
+ item[i].second);
}
}
return arr[n][k];
}
int main() {
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; i++)
{
scanf("%d %d", &w, &v);
item[i].first = w;
item[i].second = v;
}
memset(arr, 0, sizeof(arr));
int result= func();
printf("%d", result);
return 0;
}