제출 #1287850

#제출 시각아이디문제언어결과실행 시간메모리
1287850huseyncafarliKnapsack (NOI18_knapsack)C++20
37 / 100
1095 ms1096 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define pii pair<int, int> #define pll pair<ll, ll> #define vi vector<int> #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define nline '\n' #define lsb(x) ((x) & -(x)) // #define int ll #define fastio ios_base::sync_with_stdio(0); cin.tie(0) using namespace std; const int sz = (int)1e5 + 5; const int inf = 2e9 + 5; const int mod1 = 1e9 + 7; const int mod2 = 998244353; int powmod(int n, int m, int mod) { int res = 1; while (m) { if (m & 1) res = 1ll * res * n % mod; n = 1ll * n * n % mod; m >>= 1; } return res; } void solve() { ios_base::sync_with_stdio(false); cin.tie(NULL); int s, n; cin >> s >> n; vector<int> v(n + 1), w(n + 1), k(n + 1); for (int i = 1; i <= n; i++) { cin >> v[i] >> w[i] >> k[i]; } vector<vector<int>> dp(n + 1, vector<int>(s + 1)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= s; j++) { dp[i][j] = dp[i - 1][j]; // i - cini goturmuruk for (int l = 1; l <= k[i]; l++) { int weight = l * w[i]; int value = l * v[i]; if (j >= weight) { dp[i][j] = max(dp[i][j], dp[i - 1][j - weight] + value); // l dene v[i] goturmek } } } } cout << dp[n][s] << endl; } int main() { fastio; int t = 1; // cin >> t; while (t--) { 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...