Submission
Status:
(-SSS)(PPP)(PPPP)(-SSSSSS)(-SSSSSS)(-SSSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/9}{5/5}{6/6}{0/11}{0/14}{0/25}{0/30}
Score: 11
User: winwin1054
Problemset: ผลึกเวลา (Crystal)
Language: cpp
Time: 0.071 second
Submitted On: 2026-04-16 20:53:05
#include <bits/stdc++.h>
using namespace std;
int main() {
int u,k,n,low,high,mid;
long long p,w,t;
cin >> u >> k >> n;
vector<vector<long long>> all(n);
vector<long long> ans;
for(int i=0;i<n;i++) {
cin >> p >> w >> t;
all[i].push_back(t);
all[i].push_back(p);
all[i].push_back(w);
}
sort(all.begin(),all.end());
ans.push_back(all[0][1]);
for(int i=1;i<n;i++) {
if(all[i][1]>ans.back()) ans.push_back(all[i][1]);
else {
low = 0;
high = ans.size();
mid = (low+high)/2;
while(low<high) {
if(ans[mid]>all[i][1]) high = mid;
else low = mid + 1;
mid = (low+high)/2;
}
ans[mid] = all[i][1];
}
}
cout << ans.size();
}