Submission #847814

#TimeUsernameProblemLanguageResultExecution timeMemory
847814dubabubaKnapsack (NOI18_knapsack)C++14
73 / 100
1062 ms2700 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

const int mxn = 1e5 + 10;
const int mxs = 2000 + 9;
int dp[2][mxs], n, s, ans;
int pr[mxn], we[mxn], am[mxn];

signed main() {
	cin.tie(0)->sync_with_stdio(0);

	cin >> s >> n;
	for(int i = 1; i <= n; i++)
		cin >> pr[i] >> we[i] >> am[i];

	for(int i = 1; i <= n; i++)
	for(int j = 0; j <= s; j++) {
		int cur = i & 1;
		int prv = (i - 1) & 1;
		for(int k = 0; k <= am[i] && k * we[i] <= j; k++)
			dp[cur][j] = max(dp[cur][j], dp[prv][j - we[i] * k] + pr[i] * k);
		ans = max(ans, dp[cur][j]);
	}

	cout << ans << '\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...