Submission

Status:

(-SSS)(TSS)(TSSS)(-SSSSSS)(-SSSSSS)(TSSSSSSSSSS)(TSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

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

Score: 0

User: 17458

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

Language: cpp

Time: 2.090 second

Submitted On: 2025-05-27 20:35:07

#include <bits/stdc++.h>
using namespace std;
#define tiii tuple<int,int,int>

int dp[(int)1e5 + 5];
vector<tiii> vc;
int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int u, k, n; cin >> u >> k >> n;
    for (int i = 0;i < n;i++) {
        int p, w, t; cin >> p >> w >> t;
        vc.push_back({t, w, p});
    }
    sort(vc.begin(), vc.end());
    for (int i = 0;i < n;i++) {
        dp[i] = 1;
        int w1 = get<1>(vc[i]), p1 = get<2>(vc[i]);
        for (int j = 0;j < i;j++) {
            int w2 = get<1>(vc[j]), p2 = get<2>(vc[j]);
            if (w2 == w1 && p1 > p2) dp[i] = max(dp[i], dp[j] + 1);
            else if (w2 != w1 && p1 > p2) dp[i] = max(dp[i], dp[j] - k + 1);
        }
    }
    cout << dp[n - 1];

    return 0;
}