제출 #1334534

#제출 시각아이디문제언어결과실행 시간메모리
1334534veyis_112Knapsack (NOI18_knapsack)C++20
73 / 100
1095 ms436 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll pul[2001];
vector<ll> qrup[2001];
int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    int s1,n;
    cin>>s1>>n;
    for(int i=0;i<n;i++){
        ll v1,w,k;
        cin>>v1>>w>>k;
        if(w<=s1){
            int limit=s1/w;
            for(int t=0;t<k && t<limit;t++){
                qrup[w].push_back(v1);
            }
            sort(qrup[w].rbegin(),qrup[w].rend());
            if(qrup[w].size()>limit) qrup[w].resize(limit);
        }
    }
    for(int w=1;w<=s1;w++){
        for(ll v_deyer:qrup[w]){
            for(int j=s1;j>=w;j--){
                if(pul[j-w]+v_deyer>pul[j]){
                    pul[j]=pul[j-w]+v_deyer;
                }
            }
        }
    }
    cout<<pul[s1];
    return 0;
}
#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...