某通信公司在一条笔直的道路上部署了 N 座信号塔,从西向东依次排开。每座信号塔 i 都有一个固定的信号强度 W_i,且这 N 座塔的信号强度恰好是 1 到 N 的一个排列。
信号塔之间的通信受到沿途地形和干扰塔的限制。位于位置 i 和 j(i < j)的两座信号塔可以建立有效通信,当且仅当它们之间的所有信号塔(即位置 k,满足 i < k < j)的信号强度 W_k 都严格低于 \min(W_i, W_j)。
如果两座塔 i 和 j 之间可以建立有效通信,则它们对总通信网络的贡献是它们之间的距离,定义为 j - i + 1(包含自身)。
请编程计算所有可以建立有效通信的信号塔对 (i, j) 的距离总和。
输入的第一行包含一个整数 N,表示信号塔的总数量。
第二行包含 N 个整数 W_1, \cdots, W_i, \cdots, W_N,用空格分隔,表示从西向东各信号塔的信号强度序列。保证该数列是 1 到 N 的一个排列。
输出一个整数,表示所有可以建立有效通信的信号塔对 (i, j) 的距离总和。
7 4 3 1 2 5 6 7
24
12 7 3 1 10 2 5 9 4 8 6 11 12
55
20 6 20 14 13 18 5 16 11 17 12 4 15 19 10 9 8 7 3 1 2
92
共有 N=7 座塔,信号强度为 4, 3, 1, 2, 5, 6, 7。
可以建立有效通信的信号塔对 (i, j) 的位置如下:
(1, 2), (1, 5), (2, 3), (2, 4), (2, 5), (3, 4), (4, 5), (5, 6), (6, 7)
总距离和 = 2 + 5 + 2 + 3 + 4 + 2 + 2 + 2 + 2 = 24。
对于 100\% 的数据,满足 1 \leq N \leq 3 \times 10^5, W_1 \cdots W_N 是 1 到 N 的一个排列。
| 测试点编号 | N |
|---|---|
| 1 \sim 3 | \le 5000 |
| 4 \sim 10 | \le 3 \times 10^5 |