제출 #1143739

#제출 시각아이디문제언어결과실행 시간메모리
1143739liangjeremyKnapsack (NOI18_knapsack)C++20
37 / 100
1093 ms328 KiB
#include<bits/stdc++.h> #include<random> using namespace std; using db=double; using ll=long long; using sll=__int128;//super long long using lb=long double;//lb is slow //numbers for hashing: b(19260817),mod(998244353) // freopen("fencedin.in", "r", stdin); // freopen("fencedin.out", "w", stdout); int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int s,n; cin>>s>>n; vector<priority_queue<pair<int,int>>>a(s+1); for(int i=1; i<=n; i++){ int q,w,e; cin>>q>>w>>e; a[w].push({q,e}); } vector<int>dp(s+1,0); for(int i=1; i<=s; i++){ int sum=0; while(a[i].size() && sum+i<=s){ int val=a[i].top().first, len=a[i].top().second; a[i].pop(); if(len-1>0)a[i].push({val,len-1}); for(int j=s; j>=i; j--){ dp[j]=max(dp[j],dp[j-i]+val); } } } int ans=0; for(int i=0; i<=s; i++){ ans=max(ans,dp[i]); } cout<<ans<<'\n'; }
#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...