제출 #1360668

#제출 시각아이디문제언어결과실행 시간메모리
1360668mureed_hussainKnapsack (NOI18_knapsack)C++20
100 / 100
675 ms2808 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define int long long
#define vi vector<int>
#define vc vector<char>
#define vs vector<string>
#define vb vector<bool>
#define vpii vector<pair<int, int>>
#define vpic vector<pair<int, char>>
#define vpis vector<pair<int, string>>
#define vvi vector<vector<int>>
#define pb push_back
#define pii pair<int, int>
#define vvpii vector<vector<pair<int, int>>>
#define rep(i, s, e) for (int i = (s); i < (e); i++)
#define all(x) x.begin(), x.end()
#define fastio ios::sync_with_stdio(false); cin.tie(0);
#define MOD 1000000007
#define endl "\n"

signed main() {
    fastio;
    int s, n;
    cin >> s >> n;
    vi val(n), w(n), qty(n);
    rep(i, 0, n) cin >> val[i] >> w[i] >> qty[i];
    vi dp(s + 1);
    rep(i, 0, n) {
        int p = 1;
        while(qty[i] > 0) {
            int take = min(p, qty[i]);
            int weight = take * w[i];
            int value = take * val[i];

            for (int j = s; j >= weight; j--) dp[j] = max(dp[j], dp[j - weight] + value);
            qty[i] -= take;
            p <<= 1;
        }
    }
    cout << dp[s] << endl;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…