Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
141436 | 梁乃元 | 宝藏 | C++ | 解答错误 | 0 | 1 MS | 276 KB | 689 | 2024-04-04 17:36:09 |
#include <bits/stdc++.h> using namespace std; struct node { int x , y ; void rd ( ) { cin >> x >> y ; } } s [100005] ; int stk [100001] = { 114514 } ; bool cmp ( node a , node b ) { return ( a . x == b . x ? a . y < b . y : a . x < b . x ) ; } int main() { int n , m , p , lgt = 0 ; cin >> n >> m >> p ; for ( int i = 1 ; i <= p ; i ++ ) { s [i] . rd ( ) ; } sort ( s , s + p , cmp ) ; for ( int i = 1 ; i <= p ; i ++ ) { if ( s [i] . y > stk [lgt] ) { stk [++ lgt] = s [i] . y ; } else { int j = upper_bound ( stk , stk + lgt , s [i] . y ) - stk ; stk [j] = s [i] . y ; } } cout << lgt << endl ; return 0; }