Submission #1341250

#TimeUsernameProblemLanguageResultExecution timeMemory
1341250luckq2Knapsack (NOI18_knapsack)C++20
100 / 100
52 ms4380 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
ll n = 1e5 + 5;
vector<ll> v(n), w(n), k(n), user(2005, 0), hai(n), dp(n, 0);
bool cmd(ll a, ll b)
{
    return v[a] > v[b];
}
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr); cout.tie(nullptr);
    ll s, n;
    cin >> s >> n;
    for (int i = 0; i < n; ++i) cin >> v[i] >> w[i] >> k[i];
    iota(hai.begin(), hai.end(), 0);
    sort(hai.begin(), hai.end(), cmd);
    for (ll i : hai)
        for (int efowefw = 0; efowefw < k[i]; ++efowefw)
        {
            if (user[w[i]] * w[i] > s) break;
            for (int j = s; j >= w[i]; --j)
                dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
            user[w[i]] ++;
        }
    cout << dp[s];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...