Submission #1212498

#TimeUsernameProblemLanguageResultExecution timeMemory
1212498cubedKnapsack (NOI18_knapsack)C++20
0 / 100
11 ms24384 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define ll long long
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define endl '\n'
 
const int MOD = 1e9+7;
const int inf =1e9;

bool multi=false;
int max_t=1000;

int f(int i, int s, vector<pair<int, int>> &a, vector<vector<int>> &dp) {
    if (i==0) {
        if (s>=a[i].second) return a[i].first;
        else return 0;
    }

    if (dp[i][s]!=-1) return dp[i][s];

    int take=a[i].first+f(i-1, s-a[i].second, a, dp);
    int notake=f(i-1, s,a, dp);

    return dp[i][s]=max(take, notake);
}

int main()
{
    #ifndef ONLINE_JUDGE
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
    #endif

    ll t=1;
    if (multi) cin>>t;
 
    while (t--) {
        int s, n;
        cin>>s>>n;

        vector<vector<int>> a(n, vector<int>(3));
        for (int i=0; i<n; i++) {
            int v,w,k;
            cin>>v>>w>>k;

            a[i][0]=v;
            a[i][1]=w;
            a[i][2]=k;
        }

        vector<pair<int, int>> items;

        for (auto i:a) {
            int times=i[2];

            for (int j=0; j<times; j++) {
                items.push_back({i[0], i[1]});
            }
        }

        vector<vector<int>> dp(items.size(), vector<int>(s+1, -1));

        cout<<f(items.size()-1, s, items, dp);
    }
 
    return 0;
}

Compilation message (stderr)

knapsack.cpp: In function 'int main()':
knapsack.cpp:32:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
knapsack.cpp:33:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         freopen("output.txt", "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...