제출 #1158131

#제출 시각아이디문제언어결과실행 시간메모리
1158131exyztKnapsack (NOI18_knapsack)C++20
37 / 100
1095 ms49728 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int s, n;
	cin >> s >> n;
	vector<int> v(n), w(n), k(n);
	vector<ll> vn, wn;
	for (int i = 0; i < n; i++) {
		cin >> v[i] >> w[i] >> k[i];
		int cnt = 1;
		while (cnt <= k[i]) {
			k[i] -= cnt;
			vn.push_back(cnt * v[i]);
			wn.push_back(cnt * w[i]);
		}
		if (k[i]) {
			vn.push_back(k[i] * v[i]);
			wn.push_back(k[i] * w[i]);
		}
	}
	vector<ll> dp(s + 1);
	for (int i = 0; i < wn.size(); i++) {
		for (int j = s; j >= 0; j--) {
			if (j - wn[i] >= 0)
				dp[j] = max(dp[j], dp[j - wn[i]] + vn[i]);
		}
	}
	cout << dp[s] << '\n';
}
#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...