제출 #1359920

#제출 시각아이디문제언어결과실행 시간메모리
1359920bobmathKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms2764 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#define int long long
signed main() {
    int S, N; cin >> S >> N;
    vector<int>V(N), W(N), K(N);

    for (int i = 0; i < N; ++i) {
        cin >> V[i] >> W[i] >> K[i];
        K[i] = min(K[i],2000ll);
    }

    vector<int>dp(S+1,-1);
    dp[0] = 0ll;
    for (int i = 0; i < N; ++i) {
        for (int k = S; k > 0; --k) {
            for (int j = K[i]; j > 0; --j) {
                int T = k - j*W[i];
                if (T < 0ll || dp[T] == -1ll) continue;
                dp[k] = max(dp[k], dp[T] + j*V[i]);
            }
        }
    }
    cout << *max_element(dp.begin(),dp.end());
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…