Submission #1345868

#TimeUsernameProblemLanguageResultExecution timeMemory
1345868hojiakbar2011Knapsack (NOI18_knapsack)C++20
73 / 100
247 ms327680 KiB
#include <bits/stdc++.h>
using namespace std;

#define all(x) (x).begin(), (x).end()
#define ll long long
#define int long long
#define ld long double
#define f first
#define s second
#define pb push_back
#define mp make_pair

void setIO(string s = "") {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    if (!s.empty()) {
        freopen((s + ".in").c_str(), "r", stdin);
        freopen((s + ".out").c_str(), "w", stdout);
    }
}

void solve() {
    
}

signed main() {
    setIO(); // or setIO("file")
    ll s, n;
    cin>>s>>n;
    vector<vector<ll>> v(s+1);
    while(n--){
        ll val, w, k;
        cin>>val>>w>>k;
        k=min(k, s/w);
        for(int num=1;num<=k;num++){
            v[w].pb({val});
        }
    }
    vector<ll> dp(s+1, 0);
    for(int w=1;w<=s;w++){
        sort(v[w].rbegin(), v[w].rend());
        for(int k=0;k<min((int)(s/w), (int)v[w].size());k++){
            for(int i=s;i>=w;i--){
                dp[i]=max(dp[i], dp[i-w]+v[w][k]);
            }
        }
    }
    cout<<dp[s];
}

Compilation message (stderr)

knapsack.cpp: In function 'void setIO(std::string)':
knapsack.cpp:18:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         freopen((s + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:19:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |         freopen((s + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...