2852021-07-04 21:22:41k_balintBefektetéscpp14Futási hiba 0/402ms1220 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,pair<int,int>> pii;
int n,k;

ll dp[4002][4002];
pii t[4005];

bool cmp(pii a, pii b){
    return a.second.second > b.second.second;
}


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> k;
    for(int i = 1; i <= n; i++){
        int a,b,c; cin >> a >> b >> c;
        t[i] = make_pair(a,make_pair(b,c));
    }
    sort(t + 1, t + n + 1,cmp);

    for(int i = 1; i <= n; i++){
        for(int j = 1; j <= k; j++){
            dp[i][j] = max(dp[i][j - 1],dp[i - 1][j]);
            int a = t[i].first; int b = t[i].second.first; int c = t[i].second.second;
            if(j >= a && dp[i - 1][j - a] > 0){
                dp[i][j] = max(dp[i][j],dp[i - 1][j - a] + b);
            }
            else if(j >= a + c && dp[i - 1][j - a - c] == 0){
                dp[i][j] = max(dp[i][j],1ll*b);
            }
        }
    }
    cout << dp[n][k] << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Futási hiba0/02ms1120 KiB
2Futási hiba0/01ms1036 KiB
3Futási hiba0/21ms1156 KiB
4Futási hiba0/21ms1092 KiB
5Futási hiba0/11ms1120 KiB
6Futási hiba0/21ms1148 KiB
7Futási hiba0/21ms1216 KiB
8Futási hiba0/21ms1156 KiB
9Futási hiba0/21ms1216 KiB
10Futási hiba0/21ms1152 KiB
11Futási hiba0/31ms1220 KiB
12Futási hiba0/31ms1220 KiB
13Futási hiba0/31ms1216 KiB
14Futási hiba0/31ms1220 KiB
15Futási hiba0/31ms1220 KiB
16Futási hiba0/41ms1148 KiB
17Futási hiba0/11ms1156 KiB
18Futási hiba0/11ms1088 KiB
19Futási hiba0/11ms1156 KiB
20Futási hiba0/11ms1156 KiB
21Futási hiba0/11ms1152 KiB
22Futási hiba0/11ms1152 KiB