AT_abc251_h [ABC251Ex] Fill Triangle
题目描述
有 $N$ 层的三角形状的方块。从上往下第 $i$ 层有 $i$ 个方块。
给定一个由不超过 $6$ 的非负整数组成的序列 $A = (A_1, A_2, ..., A_N)$,以及它的游程编码(Run-Length Encoding)序列 $P = ((a_1, c_1), (a_2, c_2), ..., (a_M, c_M))$。
- 例如,当 $A = (2, 2, 2, 5, 5, 1)$ 时,$P = ((2, 3), (5, 2), (1, 1))$。
对于每个方块,记从上往下第 $i$ 层、从左往右第 $j$ 个方块上写的数为 $B_{i,j}$,请按照以下条件为所有方块填写数字:
- 对于所有满足 $1 \leq i \leq N$ 的整数 $i$,有 $B_{N,i} = A_i$。
- 对于所有满足 $1 \leq j \leq i \leq N-1$ 的整数对 $(i, j)$,有 $B_{i,j} = (B_{i+1,j} + B_{i+1,j+1}) \bmod 7$。
请输出从上往下第 $K$ 层所有方块上写的数字。
什么是游程编码?
游程编码是将数列 $A$ 按照以下步骤转换为由整数对组成的序列的过程:
1. 在相邻元素不同的地方将 $A$ 分割成若干段。
2. 对于每一段 $B$,用“该段的数字”和“该段的长度”组成一个整数对替换该段。
3. 按原顺序排列所有整数对,得到新的序列。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$ $K$ $a_1$ $c_1$ $a_2$ $c_2$ $\cdots$ $a_M$ $c_M$
输出格式
请输出答案。保证在约束条件下答案唯一。
> $B_{K,1}$ $B_{K,2}$ $\dots$ $B_{K,K}$
说明/提示
### 约束条件
- $1 \leq N \leq 10^9$
- $1 \leq M \leq \min(N, 200)$
- $1 \leq K \leq \min(N, 5 \times 10^5)$
- $0 \leq a_i \leq 6$
- $1 \leq c_i \leq N$
- $\sum_{i=1}^M c_i = N$
- 所有输入的值均为整数
### 样例解释 1
$A = (2,2,2,5,5,1)$。各方块上的数字如下所示:
```
3
5 5
5 0 5
1 4 3 2
4 4 0 3 6
2 2 2 5 5 1
```
由 ChatGPT 4.1 翻译