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;
}