#A. 2023.04.23-春招-第一题-数组增值

    Type: Default 1000ms 256MiB

2023.04.23-春招-第一题-数组增值

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目内容

塔子哥是一个喜欢玩数字游戏的小朋友,他有一个神奇的魔法盒子,里面可以放任意多个数字卡片。每张卡片上都有一个正整数,塔子哥可以随意拿出或放入卡片。有一天,塔子哥拿到了一个数组,他想用魔法盒子来做一个游戏。他把数组中的每个元素都写在一张卡片上,然后按顺序放入魔法盒子。然后他开始按照以下规则操作:

  1. 如果魔法盒子里的第一张卡片上的数字是 00 ,那么塔子哥就把它扔掉,并把魔法盒子里剩下的所有卡片都向前移动一位,填补空缺。
  2. 如果魔法盒子里的第一张卡片上的数字不是 00 ,假设是第一张卡片上的数字是 a0a_0 ,那么塔子哥就在魔法盒子的最后面添加 a0a_0 张卡片,每张卡片上的数字都是 a01a_0−1 ,然后把魔法盒子里第一张卡片上的数字减去 11

塔子哥每做一次操作,就会在纸上画一个小圈圈,表示自己很开心。他想知道,从开始进行操作直到魔法盒子里没有卡片了,他一共画了多少个小圈圈?由于塔子哥很聪明,他知道如果结果可能很大,所以他会让结果对 109+710^9+7 取模。

输入描述

第一行输入为一个正整数 nn ,代表数组的长度。

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

1n1051 \le n \le 10^5 1ai1051 \le a_i \le10^5

输出描述

一个整数,代表操作的次数对 109+710^9+7 取模的值。

样例1

输入

2
1 1

输出

6

样例解释 第一次操作, 数组变成 [0,1,0][0,1,0]

第二次操作,数组变成 [1,0][1, 0]

第三次操作,数组变成 [0,0,0][0,0,0]

第四次操作,数组变成 [0,0][0,0]

第五次操作,数组变成 [0][0]

第五次操作,数组变成 [][]

样例2

输入

3
2 3 2

输出

61

春招模拟赛第十七场|小红📕|2023.4.23

Not Attended
Status
Done
Rule
IOI
Problem
3
Start at
2023-5-7 19:00
End at
2023-5-7 20:18
Duration
1.3 hour(s)
Host
Partic.
33