제출 #780223

#제출 시각아이디문제언어결과실행 시간메모리
780223christinelynnKnapsack (NOI18_knapsack)C++17
0 / 100
87 ms262144 KiB
#include <bits/stdc++.h> using namespace std; int t, n, val[100005], cost[100005], remain[100005], dp[100005][2005]; int solve(int i, int rem) { if (i < 0 or rem <= 0) return 0; if (dp[i][rem] != -1) return dp[i][rem]; int res1, res2=0; res1 = solve(i-1, rem); if (rem >= cost[i]) { res2 = solve(i-1, rem-cost[i])+val[i]; } dp[i][rem] = max(res1, res2); return dp[i][rem]; } int main() { cin >> t >> n; for (int i = 0; i < n; i++) cin >> val[i] >> cost[i] >> remain[i]; memset(dp, -1, sizeof(dp)); cout << solve(n-1, t) << endl; }
#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...