A Little Bit of Formal Statements Never Hurt Anybody
题目描述
给定一个由两两不同的整数组成的数组 a1,a2,…,an。
请统计满足以下条件的数对 (l,r) 的数量:
- 1≤l≤r≤n;
- 设 k 是区间 al,al+1,…,ar 中最大元素所在的位置;
- 满足
al+al+1+⋯+ak=ak+ak+1+⋯+ar.
输入格式
第一行包含一个整数 n(1≤n≤3⋅105),表示数组 a 的长度。
第二行包含 n 个整数 a1,a2,…,an(−109≤ai≤109),表示数组 a 的元素。
保证数组中的所有整数两两不同。
输出格式
输出一个整数,表示题目所描述的数对 (l,r) 的数量。
输入输出样例 #1
输入 #1
5
1 3 5 4 9
输出 #1
6
评分方式
- 3 分:n≤100;
- 7 分:n≤103;
- 13 分:a1<a2<⋯<an;
- 8 分:存在 i(1≤i≤n),使得 a1<⋯<ai 且 ai>⋯>an;
- 22 分:n≤105;
- 23 分:数组由随机整数构成(−109≤ai≤109);
- 24 分:无额外限制。