알고리즘

[알고리즘] 백준 12865 - 평범한 배낭

blueberrysoda 2024. 7. 1. 22:15
#include <iostream>
using namespace std;

int n, k;
pair<int, int> map[101];
bool check[101];
int dp[101][100001];

void sol(){
    
    for(int i=1; i<=n; i++){
        for(int j=1; j<=k; j++){
            if(j >= map[i].first) dp[i][j] = max(dp[i-1][j], dp[i-1][j-map[i].first] + map[i].second);
            else dp[i][j] = dp[i-1][j];
        }
    }

    cout << dp[n][k] << "\n";
}
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>n>>k;
    
    for(int i=1; i<=n; i++){
        cin>>map[i].first>>map[i].second;
    }

    sol();
}