Submission #735243

#TimeUsernameProblemLanguageResultExecution timeMemory
735243danilovict2Knapsack (NOI18_knapsack)C++14
73 / 100
144 ms262144 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define pb push_back #define pii pair<int, int> #define vi vector<int> #define vii vector<pair<int, int>> #define mp make_pair #define sz(a) a.size() #define MOD 1000000007 #define forn(i, n) for (int i = 0; i < n; ++i) #define INF 1e18 const vector<pair<int, int>> dirs1 = {{-1, -1}, {-1, 1}, {1, 1}, {1, -1}, {-1, 0}, {1, 0}, {0, 1}, {0, -1}}; const vector<pair<int, int>> dirs2 = {{-1, 0}, {1, 0}, {0, 1}, {0, -1}}; bool sortbysec(const pair<int, int> &a, const pair<int, int> &b) { return (a.second < b.second); } const int maxN = 100001; int dp[maxN][2001]; void solve(){ int n,s; cin>>s>>n; int v[n], w[n], k[n]; forn(i,n){ cin>>v[i]>>w[i]>>k[i]; } dp[0][0] = 0; for(int i=1;i<=n;++i){ for(int j=1;j<=s;++j){ dp[i][j] = dp[i-1][j]; for(int t=1;t<=k[i-1];++t){ if(j >= t*w[i-1])dp[i][j] = max(dp[i][j], dp[i-1][j-t*w[i-1]] + v[i-1]*t); else break; } } } cout<<dp[n][s]<<"\n"; } int main(void){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); solve(); 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...