题目描述
给定两个长度为 N 的自然数序列:
V1,V2,…,VN
和
E1,E2,…,EN.
对于每一段连续子序列 [l,r],若它的两个端点满足:
El=Er,
则该子序列会对答案贡献:
max(Vl,Vl+1,…,Vr).
请计算所有满足 1≤l≤r≤N 且 El=Er 的连续子序列的贡献和,对
1000000007
取模输出。
输入格式
第一行包含一个整数 N。
第二行包含 N 个自然数,表示序列 V。
第三行包含 N 个自然数,表示序列 E。
输出格式
输出一行一个整数,表示所求答案对 1000000007 取模后的结果。
数据范围与约定
- 1≤N≤3×105;
- 1≤Vi,Ei≤109;
- 连续子序列指下标连续的一段。
子任务
| 子任务 |
分值 |
限制 |
| 1 |
8 |
N≤2000 |
| 2 |
11 |
对所有 1≤i≤N,Ei=1 |
| 3 |
12 |
对所有 1≤i≤N,Ei≤20 |
| 4 |
对所有 1≤i≤N,Vi≤20 |
| 5 |
19 |
N≤5×104 |
| 6 |
38 |
无额外限制 |
样例
5
5 29 3 28 30
9 8 9 9 8
211
样例解释
贡献答案的子序列必须满足两端的 E 值相等。
本例中,满足条件的区间及其最大值为:
$$(1,1,5),\ (1,3,29),\ (1,4,29),\ (2,2,29),\ (2,5,30),$$
(3,3,3), (3,4,28), (4,4,28), (5,5,30).
这些最大值之和为:
5+29+29+29+30+3+28+28+30=211.