#238. [Sleeping Cup #10] Population

[Sleeping Cup #10] Population

注意

本题需要使用文件读写(population.in / population.out)。

题目背景

Sleeping Jellyfish 在玩了普通版本的《生命游戏》后,觉得还不够刺激,于是他设计了一个加强版,引入了特殊的生命源和病毒。这些生命源不会被病毒感染,能够持续影响周围的细胞演化。而病毒会感染周围的细胞,也能够持续影响周围的细胞演化。

题目描述

现有一个改编版的《生命游戏》。

游戏在一个 nnmm 列的网格中进行,网格的状态共有 55 种,编号分别为 0,1,,40, 1, \ldots, 4

你需要模拟以下步骤 ss 次,每次模拟时所有格子的操作同步进行:

  • 根据下表,对于每个格子,计算所有与它的切比雪夫距离为 11 的格子的权值之和。
  • 根据下表,对格子的状态进行变换。
状态 权值
00(死细胞) 00
11(活细胞) 11
22(永生细胞)
33(繁殖源) 22
44(病毒) 1-1
权值之和 变换规则
1\le 1 000 \to 0 101 \to 0 222 \to 2 333 \to 3 444 \to 4
22 111 \to 1
33 010 \to 1
4\ge 4 000 \to 0 101 \to 0

输入格式

第一行三个正整数 n,m,s (1n,m100,1s1000)n, m, s\ (1 \le n, m \le 100, 1 \le s \le 1000)

下面一个 n×mn \times m 的矩阵,表示网格的初始状态。

输出格式

一个 n×mn \times m 的矩阵,表示网格的最终状态。

样例

3 3 1
0 1 0
0 2 0
0 1 0
0 0 0
1 2 1
0 0 0
5 5 1
0 0 0 0 0
0 1 1 1 0
0 1 4 1 0
0 1 1 1 0
0 0 0 0 0
0 0 1 0 0
0 0 1 0 0
1 1 4 1 1
0 0 1 0 0
0 0 1 0 0
5 5 2
0 0 0 0 0
0 1 4 1 0
0 1 3 1 0
0 1 1 1 0
0 0 0 0 0
0 0 0 0 0
0 1 4 1 0
0 1 3 1 0
0 0 1 0 0
0 0 0 0 0