思路是单调栈求出左右第一个比 ai 大的数后确定 ai 为最大数的区间 [Lefi,Rigi]
然后标记这两个端点,再进行一次单调栈,在每个点入栈前取出 以它为左/右第一大数的数 ai ,然后在当前的单调栈里二分查找比 ai 大的数
相当于绕开 ai 的左右第一个大的数之后求左右第一个大的数的位置,记为 Li 和 Ri
于是 ai 作为次大数的区间就是 [Li+1,Rigi−1] 和 [Lefi+1,Ri−1]
然后对于每个数枚举这两个区间取最大就行了
WA 10 pts,感觉没什么问题,求助(
code