Submission #1157620

#TimeUsernameProblemLanguageResultExecution timeMemory
1157620arkanefuryKnapsack (NOI18_knapsack)C++20
73 / 100
468 ms327680 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define in insert #define lb lower_bound #define F first #define S second #define sz size() #define all(v) v.begin(),v.end() #define FOR1(x, n) for(int j = x; j <= n; j ++) #define FOR(x, n, m, d) for(int x = n; x <= m; x += d) #define FORR(x, n, m, d) for(int x = n; x >= m; x -= d) #define nikita ios_base::sync_with_stdio(0), cin.tie(0); const int N = 1e5+5; int n,m,k,sum=0,x,y, ans, r, cnt, l, mod = 1e9+7; string s, str; void solve(){ cin >> m >> n; vector<vector<int>> dp(n+1,vector<int>(m+1,0)); ans = 0; FOR(ok,1,n,1){ int cost, worth, skoka; cin >> cost >> worth >> skoka; int i = ok; FOR(j, 1, m, 1){ dp[i][j] = dp[i-1][j]; if( worth <= j ){ k = skoka; k = min(k, m); while(k){ if(j >= worth*k)dp[i][j] = max(dp[i][j], dp[i-1][j-worth*k] + cost * k); k --; } } ans=max(ans, dp[i][j]); } } cout << ans; } signed main(){ nikita int tt = 1; if(!tt)cin >> tt; FOR(i, 1, tt, 1)solve(); }
#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...