#P1225. 2023.04.15-春招-第四题-01串的回文子串

2023.04.15-春招-第四题-01串的回文子串

题目内容

在古老而神秘的岛国里,流传着一个神秘的传说:如果能够解开岛国里的谜题,就可以得到无尽的财富和荣耀。作为一个勇敢的冒险家,塔子哥听说了这个传说,他深深地被吸引,决定前往这个岛国一探究竟。

在岛国中,塔子哥获得了一个秘密任务:他需要解开一个神秘的数字谜题。他来到了一个神秘的洞穴,里面有一些奇怪的符号和数字。他看到了一个特别的 0101 串,由于太长了,他无法记住整个 0101 串。

于是他记录下了每一段连续的数字中 01 的数量,即用一个大小为 nn 的数组来表示该数字串,其中第一个元素 a1a_1 表示数字串开头有 a1a_11,第二个元素 a2a_2 表示紧接着有 a2a_20,第三个元素 a3a_3 表示紧接着有 a3a_31,以此类推。这样就表示了一个长度为 i=1nai\sum^n _{i=1} a_i 的数字串。

然而,这还不是全部的挑战。他需要进一步计算该 0101 串中非空回文子串的数量(由于答案可能过大,请对 109+710^9+7 取模),才能得到该谜题的答案,但是挑战仅凭他一个人无法解决,所以他需要你的帮助,你能帮帮他吗?

回文的定义:字符串正着读和倒着读相同,例如 101101 是回文串。

子串的定义:字符串取一段连续的部分,例如 0111011 的子串。

输入描述

第一行输入一个正整致 nn ,代表数组的大小。

第二行输入 nn 个正整数 aia_i ,代表数组的元素。

1n10001\le n\le 10001ai1091 \le a_i \le 10^9

输出描述

回文子串的数量,答案对 109+710^9+ 7 取模。

样例

样例1

输入

2
2 1

输出

4

样例2

输入

4
1 2 2 1

输出

10