Submission

Status:

(P-SS)(TSS)(TSSS)(-SSSSSS)(PPPP-SS)(TSSSSSSSSSS)(TSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

{0/9}{0/5}{0/6}{0/11}{0/14}{0/25}{0/30}

Score: 0

User: foldnut

Problemset: ผลึกเวลา (Crystal)

Language: cpp

Time: 2.083 second

Submitted On: 2025-11-10 09:49:03

#include <bits/stdc++.h>
using namespace std;

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int u, k, n;
    cin >> u >> k >> n;
    vector<tuple<int, int, int>> v(n);
    for(int i = 0;i<n;i++){
        auto &[t, p, w] = v[i];
        cin >> p >> w >> t;
    }
    sort(v.begin(), v.end());
    vector<int> dp(n);
    dp[0] = 1;
    for(int i = 1;i<n;i++){
        auto [t, p, w] = v[i];
        for(int j = 0;j<i;j++){
            auto [t1, p1, w1] = v[j];
            if(p > p1){
                if(w == w1){
                    dp[i] = max(dp[i], dp[j] + 1);
                }else{
                    dp[i] = max(dp[i], dp[j] + 1 - k);
                }
            }
        }
    }
    cout << *max_element(dp.begin(), dp.end());
}