제출 #1177652

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

#define all(c)      (c).begin(), (c).end()
#define sz(c)       (int)(c).size()
#define vt          vector
#define pb          push_back
#define F           first
#define S           second

void solve() {
  ll s,n; cin>>s>>n;
  vt<ll> v(n), w(n), k(n);
  for (int i=0;i<n;i++){
    cin>>v[i]>>w[i]>>k[i];
    k[i] = min(k[i], s/w[i]);
  }

  vt<ll> dp(s+1, 0);
  for (int i=0;i<n;i++){
    for (int cn=1;cn<=k[i];cn++){
        for (int x=s;x>=w[i];x--){
            dp[x] = max(dp[x], dp[x-w[i]]+v[i]);
        }
    }
  }
  cout << dp[s] << endl;
}

int main() {
  int tt=1; 
  cin>>tt; 
  while(tt--) 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...