제출 #1178750

#제출 시각아이디문제언어결과실행 시간메모리
1178750petezaKnapsack (NOI18_knapsack)C++20
12 / 100
0 ms528 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll s, n, a, b, c; ll dpupd[2005], dpold[2005]; priority_queue<pair<ll, int>> pq; int main() { cin.tie(0) -> sync_with_stdio(0); cin >> s >> n; for(int i=1;i<=n;i++) { cin >> a >> b >> c; for(int i=0;i<b;i++) { for(int j=i,k=0;j<=s;j+=b,k++) { if(!pq.empty()) { while(k - pq.top().second > c) pq.pop(); dpupd[j] = pq.top().first + k*a; } pq.emplace(dpold[j] - k*a, k); } while(!pq.empty()) pq.pop(); } for(int i=0;i<=s;i++) dpold[i] = dpupd[i]; } cout << dpold[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...