AT_s8pc_1_e 散歩 (E869120 and Path Length)
题目描述
在 E869120 王国中,有 $N$ 个城镇。城镇 $i-1$ 和城镇 $i$ 之间有道路相连。
每个城镇 $i$ 上标注了一个整数 $a_i$,连接城镇 $i-1$ 和城镇 $i$ 的道路长度用公式 $a_{i-1} \times a_i$ 计算。
E869120 王国的居民 square1001 想去散步。square1001 住在城镇 1,他的计划是按照路径 $1 \rightarrow c_1 \rightarrow c_2 \rightarrow \ldots \rightarrow c_Q \rightarrow 1$ 行走。
为了避免 square1001 走太远,我们需要帮助他计算总行走的距离,并对结果取模 $1,000,000,007$。
输入格式
输入数据包括:
- 第一行包含两个整数 $N$ 和 $Q$,分别表示城镇的总数和旅途经过的城镇数。
- 第二行包含 $N$ 个整数 $a_1, a_2, \ldots, a_N$,表示每个城镇上标注的数字。
- 第三行包含 $Q$ 个整数 $c_1, c_2, \ldots, c_Q$,表示 square1001 的散步路径。
输出格式
输出行走的总距离对 $1,000,000,007$ 取模后的结果。在输出末尾添加换行符。
说明/提示
### 约束条件
- $2 \leq N \leq 120,000$
- $1 \leq Q \leq 120,000$
- $0 \leq a_i \leq 1,000,000,000$
- $1 \leq c_i \leq N$
- $c_{i-1} \neq c_i$
- 若 $a_i = 0$,则 $a_{i+1} \neq 0$
### 部分得分
- 对于 $1 \leq N \leq 1,000$ 且 $1 \leq Q \leq 1,000$ 且 $1 \leq a_i \leq 1,000$ 的测试用例,获得 15 分。
- 对于 $1 \leq N \leq 1,000$ 且 $1 \leq Q \leq 1,000$ 的测试用例,获得 50 分。
- 对于所有测试用例,若答对全部给 100 分。
### 示例解释 1
- 第一次,square1001 从城镇 1 行至城镇 3,走的距离是 $5 \times 3 + 3 \times 1 = 128$。
- 第二次,从城镇 3 行至城镇 2,走的距离是 $3 \times 1 = 3$。
- 第三次,从城镇 2 行至城镇 4,走的距离是 $3 \times 1 + 1 \times 2 = 4$。
- 第四次,从城镇 4 回到城镇 1,走的距离是 $1 \times 2 + 3 \times 1 + 5 \times 3 = 129$。
- 因此,square1001 总共走了 $264$。
### 示例解释 2
square1001 在一趟行程中走了 $43,829,259,183,601,346$,因此结果对 $1,000,000,007$ 取模为 $876,796,540$。
**本翻译由 AI 自动生成**