제출 #1361410

#제출 시각아이디문제언어결과실행 시간메모리
1361410flyKnapsack (NOI18_knapsack)C++20
100 / 100
181 ms456 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int s, n;
    cin >> s >> n;
    vector<long long> bp(s+1);
    int v, w, k;
    for (int q = 0; q < n; q++) {
        cin >> v >> w >> k;
        for (int i = s; i >= 0; i--) {
            for (int j = 1; j <= k; j++) {
                int nw = i + j*w;
                if (nw > s) break;
                if (bp[i]+v*j > bp[nw]) {
                    bp[nw] = bp[i] + v*j;
                } else {
                    break;
                }
            }
        }
    }
    long long answer = 0;
    for (int i = 0; i <= s; i++) {
        answer = max(answer, bp[i]);
    }
    cout << answer;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…