测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7591. [ABC140E] Second Sum

编程题 普及+/提高
知识点

题目描述

### 题面描述

给出一个 $1 \sim n$ 的排列(即 $1 \sim n$ 每个数只出现一次)$P$。

给出一对 $[L, R]$,设 $X_{L, R}$ 是 $P_L \sim P_R$ 中的次大值(第二大值)。

求 $\sum_{L = 1}^{N - 1} \sum_{R = L + 1}^{N} X_{L, R}$。

注:即求所有 $[L, R]$ 区间的次大值之和。

输入格式

第一行一个整数 $N$,表示之后给出的排列长度为 $N$。

第二行一个长度为 $N$ 的排列 $P$。

输出格式

输出一个整数,表示 $\sum_{L = 1}^{N - 1} \sum_{R = L + 1}^{N} X_{L, R}$

输入输出样例

输入 #1
3
2 3 1
输出 #1
5
输入 #2
5
1 2 3 4 5
输出 #2
30
输入 #3
8
8 2 7 3 4 5 6 1
输出 #3
136

说明/提示

#### 样例 1 解释

$X_{1, 2} = 2, X_{1, 3} = 2, X_{2, 3} = 1$,次大值和为 $2 + 2 + 1 = 5$。

#### 数据约束

对于 $100\%$ 的数据,保证:
- $2 \le N \le 10^5$
- $1 \le P_i \le N$
- $P_i \ne P_j (i \ne j)$
- $1 \le L < R \le N$
- 所有输入均为整数。
上一题 去做题 下一题