Submission
Status:
(PPPP)(TSS)(TSSS)(PPPPPPP)(PPPPPPP)(TSSSSSSSSSS)(TSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{9/9}{0/5}{0/6}{11/11}{14/14}{0/25}{0/30}
Score: 34
User: foldnut
Problemset: ผลึกเวลา (Crystal)
Language: cpp
Time: 2.090 second
Submitted On: 2025-11-10 09:51:41
#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);
for(int i = 0;i<n;i++){
dp[i] = 1;
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());
}