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