#include <bits/stdc++.h>
#define int long long
using namespace std;
const int MX = 2005;
int S, n;
int f[2005];
vector<pair<int, int>> G[2005];
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> S >> n;
for(int i=1; i<=n; i++){
int v, w, k;
cin >> v >> w >> k;
G[w].push_back({v, k});
}
for(int w=1; w<=S; w++){
sort(G[w].begin(), G[w].end(), greater<pair<int, int>>());
int lim = S/w;
for(pair<int, int> p: G[w]){
int v, k; tie(v, k) = p;
k = min(k, lim);
lim -= k;
for(int t=1; k>0; t=min(k, t<<1)){
int val = v*t;
int wei = w*t;
for(int j=S; j>=wei; j--){
f[j] = max(f[j], f[j-wei] + val);
}
k -= t;
}
}
}
cout << *max_element(f + 0, f + S + 1);
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |