Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
141439 | 梁乃元 | 宝藏 | C++ | 解答错误 | 0 | 1 MS | 268 KB | 701 | 2024-04-04 17:47:54 |
#include <bits/stdc++.h> using namespace std; struct node { int x , y ; void rd ( ) { cin >> x >> y ; } } s [100005] ; int stk [100001] = { int ( 1e-9 ) } ; 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 + 1 , s + p + 1 , 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; }