Submission #780250

#TimeUsernameProblemLanguageResultExecution timeMemory
780250devariaotaKnapsack (NOI18_knapsack)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; const ll MAXN = 1e5 + 5; const ll MAXT = 2e3 + 5; ll n, t, li, ei, ki, dp[MAXT]; void update2(ll a, ll b, ll low, ll high) { // {Spread, Energi} for (int i = low; i <= high; ++i) { if (i < b) { continue ; } dp[i] = max(dp[i], dp[i-b] + a); } } void update(ll a, ll b, ll k) { // {Spread, Energi, Jumlah} ll low = -1, high = t; while(low != 0) { low = high - (k * ei); update2(a, b, low, high); high = low - 1; low = max(high - (k * ei), 0ll); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin >> t >> n; for (int i = 0; i < n; ++i) { cin >> li >> ei >> ki; ki = min(ki, t / ei); update(li, ei, ki); } cout << dp[t] << "\n"; 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...