代码
#include<bits/stdc++.h>
using namespace std ;
const int Maxs = 500010 , TIL = ( 1 << 28 ) ;
int Que[Maxs] , Top ;
long long Ans ;
int N , X ;
int main( ) {
cin >> N ; Ans += N - 1 ;
for(int i = 1 ; i <= N ; i ++ ) {
cin >> X ;
while(Top && X >= Que[Top]) Top -- ;
if( Top == 1 ) Ans ++ ;
Que[ ++ Top ] = X ;
} printf( "%lld\n" , Ans ) ;
return 0 ;
}
从第一个人开始 ,遇到高一点的就吧栈顶踢掉 , 提完后有两个人就有一对 , 开始相邻必有N - 1对 ;
难道有问题吗?为什么零分 ?