제출 #1256432

#제출 시각아이디문제언어결과실행 시간메모리
1256432shantoroyKnapsack (NOI18_knapsack)C++20
73 / 100
1096 ms2632 KiB
#include <bits/stdc++.h>
using namespace std;
#define    ll              long long
#define    endl            "\n"
#define    fast_io         ios_base::sync_with_stdio(false);cin.tie(NULL); cout.tie(NULL);
#define    pb              push_back
using      vl=vector<ll>;
#define    vvl             vector<vl>
#define    asort(v)        sort(v.begin(),v.end())
#define    dsort(v)        sort(v.rbegin(),v.rend())
#define    pll             pair<ll,ll>
#define    vpl             vector<pll> 
#define    rev(v)          reverse (v.begin(),v.end());
#define    upb(vec, val)   ((upper_bound((vec).begin(), (vec).end(), (val))) - (vec).begin())
#define    lwb(vec, val)   ((lower_bound((vec).begin(), (vec).end(), (val))) - (vec).begin())
#define    sl              set<ll> 
#define    spl             set<pll> 
#define    in              insert
#define    c1            __builtin_popcountll
const ll mod = 1e9+7;
// const ll mx = 1e6;

int main() {

     fast_io;
     ll mx,n;
     cin>>mx>>n;

     vl v(n),w(n),c(n);

     for(ll i=0;i<n;i++){
          cin>>v[i]>>w[i]>>c[i];
     }

     vl dp(mx+1,0);
     
     for(ll i=0;i<n;i++){
          for(ll j=mx;j>=w[i];j--){


               for(ll cp=1;cp<=c[i];cp++){

                    if( (cp*w[i]) > j )break;

                    dp[j]=max(dp[j],dp[j-cp*w[i]]+cp*v[i]);

               }
          }
     }

     cout<<dp[mx];
     
     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...