Submission #1268390

#TimeUsernameProblemLanguageResultExecution timeMemory
1268390michael12Knapsack (NOI18_knapsack)C++20
37 / 100
1097 ms33156 KiB
#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
using namespace std;

// void dfs(int n, int m, vector<vector<int>>& gr, int ba, int mu){
//     vis[n][m] = true;
//     int dx[4] = {0, 0, 1, -1};
//     int dy[4] = {1, -1, 0, 0};
//     for(int i = 0; i < 4; i++){
//         int nx = n + dx[i];
//         int ny = m + dy[i];
//         if(nx >= 1 && ny >= 1 && nx < ba && ny < mu && gr[nx][ny] == 1 && !vis[nx][ny]){
//            dfs(nx, ny, gr, ba, mu);
//         }
//     }
// }



int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int n,m;
    cin >> n >> m;
    vector<pair<int, int>> pq;
    int dp[n + 1];
    for(int i = 0; i <= n; i++){
        dp[i] = 0;
    }
    for(int i = 0; i < m; i++){
        int a,b,c;
        cin >> a >> b >> c;
        pq.push_back({a, b});
        while(c > 1){
        pq.push_back({a, b});
        c--;
        }
        int u = pq.size();
        
        // for(int k = n; k >= a; k--){
        //     dp[k] = max(dp[k], dp[k - a] + b);
        // }
    }
    int y = pq.size();
    for(int i = 0; i < y; i++){
        for(int k = n; k >= pq[i].ss; k--){
            dp[k] = max(dp[k], dp[k - pq[i].ss] + pq[i].ff);
        }
    }
    int ans = 0;
    for(int i = 0; i <= n; i++){
        ans = max(ans, dp[i]);
    }
    cout << ans;


    // while (t--) {
    //     int k;
    //     long long x;
    //     cin >> k >> x;
        
    //     vector<int> s2s = solve(k, x);
        
    //     cout << s2s.size() << "\n";
    //     for (int i = 0; i < s2s.size(); i++) {
    //         if (i > 0) cout << " ";
    //         cout << s2s[i];
    //     }
    //     cout << "\n";
    // }
    
    // 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...