Submission #1158872

#TimeUsernameProblemLanguageResultExecution timeMemory
1158872ulvixKnapsack (NOI18_knapsack)C++20
100 / 100
80 ms2888 KiB
#include<bits/stdc++.h>
#define ll long long
#define all(x) x.begin(),x.end()
using namespace std;
vector<pair<ll,ll>> wei[2005];
ll dp[2005];
int main(){
    ll s,n,ans=0;
    cin>>s>>n;
    for(ll i=0;i<n;i++){
        ll a,b,c;
        cin>>a>>b>>c;
        wei[b].push_back({a,c});
    }
    for(ll i=1;i<=s;i++){
        sort(wei[i].rbegin(),wei[i].rend());
        ll idx=0;
        for(ll j=0;j<s/i;j++){
            if(idx>=wei[i].size()) break;
            for(ll k=s;k>=i;k--){
                dp[k]=max(dp[k],dp[k-i]+wei[i][idx].first);
                ans=max(ans,dp[k]);
            }
        wei[i][idx].second--;
        if(wei[i][idx].second==0) idx++;
        }
    }
    cout<<ans;
}
#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...