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