Coloring
题目描述
$\text{Snakes}$正在玩游戏,他在一张画有$n*m$个格子的白纸上给方格染色。然而,杂乱无章的染色并不有趣,所以他想出了一个奇怪的问题:
在$n*m$的方格中用$c$种不同的颜色尝试将所有方格染色,不同的颜色用$1..c$间的整数表示。染色需要满足以下条件:
+ 每个方格只能且必须染一种颜色。
+ 第$i$种颜色最多可以且必须染$p_i$个格子,保证满足$\sum_{i=1}^cp_i=n*m$。
+ 将每个格子上下左右与其颜色相同的格子视为位于同一个联通块内,并定义不同联通块之间的方格边的条数为$q$。可参考样例说明。
现在,$\text{Snakes}$想知道,如果给出$n,m,c$以及$p_1..p_c$,你能够构造出的符合条件且$q$尽量小的染色方案。
输入输出格式
输入格式
第一行,三个数,$n,m,c$。
第二行,$c$个数,第$i$个数为$p_i$。
输出格式
输出共$n$行,每行$m$个数,表示你构造出的$n*m$的$q$尽量少的染色方案。
输入输出样例
输入样例 #1
2 3 3
1 2 3
输出样例 #1
2 3 1
2 3 3
说明
```plain
| |
2 | 3 | 1
+ +---
2 | 3 3
|
```
对于样例,有$q=4$,其中三条竖边,一条横边。
#### 约定
本题为 Special Judge。
对于每个测试点,将会设置阈值$w$,并保证存在构造使得$q\leq w$。
对于程序输出的答案,我们将会以以下方式计算得分:
$$\begin{matrix}q&score&q&score\\\\ q \leq w&10&1.75w < q \leq 2w&5\\\\ w < q \leq 1.1w&9&2w < q \leq 2.3w&4\\\\ 1.1w < q \leq 1.25w&8&2.3w < q \leq 2.6w&3\\\\ 1.25w < q \leq 1.5w&7&2.6w < q \leq 3w&2\\\\ 1.5w < q \leq 1.75w&6&3w < q \leq 3.5w&1\end{matrix}$$
若$q > 3.5w$,将以 `Wrong Answer` 处理。
比赛时显示的得分即为最后得分。
#### 数据规模
对于$10\%$的数据,有$1\leq n,m\leq 3$,$c\leq 3$。
对于$30\%$的数据,有$1\leq n,m\leq 8$,$c\leq 6$。
对于$50\%$的数据,有$1\leq n,m\leq 15$,$c\leq 25$。
对于$100\%$的数据,有$1\leq n,m\leq 20$,$c\leq 50$,$p_i\leq 20$。