AT_arc117_b [ARC117B] ARC Wrecker
题目描述
AtCoder 街道上建有 $N$ 栋大楼。最初,从左到右第 $i$ 栋大楼有 $A_i$ 层。
ARC 拆迁公司的社长高桥君可以进行如下操作任意多次,也可以一次都不进行:
- 任选一个正整数 $X$,从第 $X$ 层高度发射大炮。此时,所有当前高度不少于 $X$ 层的大楼,其层数都会减少 $1$。
请计算最终可能出现的不同大楼景观的数量,并将结果对 $10^{9} + 7$ 取模后输出。
这里,若存在某个 $i$,使得景观 A 的第 $i$ 栋大楼高度 $P_i$ 与景观 B 的第 $i$ 栋大楼高度 $Q_i$ 不同,则认为景观 A 和景观 B 是不同的。
输入格式
输入以如下格式从标准输入给出:
> $N$ $A_1$ $A_2$ $\cdots$ $A_N$
输出格式
请输出答案。
说明/提示
### 限制条件
- $1 \leq N \leq 100000$
- $1 \leq A_i \leq 10^{9}$
- 输入均为整数
### 样例解释 1
操作后可能出现的大楼高度有如下 $4$ 种情况:
- (大楼 $1$ 的层数, 大楼 $2$ 的层数)= $(0, 0)$
- (大楼 $1$ 的层数, 大楼 $2$ 的层数)= $(0, 1)$
- (大楼 $1$ 的层数, 大楼 $2$ 的层数)= $(1, 1)$
- (大楼 $1$ 的层数, 大楼 $2$ 的层数)= $(1, 2)$
### 样例解释 3
一共可能有 $20192492160000$ 种景观,将其对 $10^{9} + 7$ 取模后,输出 $492018656$ 即为正确答案。
由 ChatGPT 4.1 翻译