#P10173. 「OICon-02」maxiMINImax

    ID: 9442 Type: RemoteJudge 2000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>线段树O2优化笛卡尔树单调栈

「OICon-02」maxiMINImax

题目描述

给出一个长度为 nn 的排列 aa。定义一个子区间 [l,r][l,r]aia_i 的最小值为 min[l,r]\min_{[l,r]}aia_i 的最大值为 max[l,r]\max_{[l,r]}。对于所有子区间三元组 ([l1,r1],[l2,r2],[l3,r3])([l_1,r_1],[l_2,r_2],[l_3,r_3]) 使得 1l1r1<l2r2<l3r3n1\leq l_1\leq r_1<l_2\leq r_2<l_3\leq r_3\leq n,求 $\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})$ 之和,对 97121769712176 取模。

输入格式

第一行,一个正整数 nn,表示排列的长度。

第二行,nn 个正整数 aa,表示给出的排列 aa

输出格式

一行,一个正整数,表示 $\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})$ 之和,对 97121769712176 取模。

4
1 3 4 2
14
10
1 3 6 2 7 9 4 10 8 5
1992

提示

样例解释

对于样例 11

  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,1],[2,2],[3,3])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=0$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,1],[2,2],[3,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=0$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,1],[2,2],[4,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=2$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,1],[2,3],[4,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=2$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,1],[3,3],[4,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=6$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([1,2],[3,3],[4,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=2$;
  • $([l_1,r_1],[l_2,r_2],[l_3,r_3])=([2,2],[3,3],[4,4])$:$\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})=2$。

所有 ([l1,r1],[l2,r2],[l3,r3])([l_1,r_1],[l_2,r_2],[l_3,r_3]) 的 $\max(0,\min_{[l_2,r_2]}-\max_{[l_1,r_1]})\times\max(0,\min_{[l_2,r_2]}-\max_{[l_3,r_3]})$ 总和为 0+0+2+2+6+2+2=140+0+2+2+6+2+2=14

数据范围

本题采用捆绑测试。

Subtask\text{Subtask} 特殊性质 Score\text{Score}
11 n60n\leq60 55
22 n100n\leq100 99
33 n200n\leq200
44 n500n\leq500
55 n2000n\leq2000 1919
66 n6000n\leq6000 1111
77 n105n\leq10^5 1919
88 无特殊限制

对于 100%100\% 的数据:1n1061\leq n\leq10^61ain1\leq a_i\leq n,保证 aa{1,2,,n}\{1,2,\dots,n\} 的一个排列。