#HXOJ2445. 转圈循环题三:康威生命游戏

提交1 通过1
通过率100%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

也许你听说过康威生命游戏(Conway's Game of Life)。康威生命游戏适用于方格组成的矩阵。但它可以产生十分复杂的结构。在这道题目中,我们将探讨简化版的生命游戏。

将一个圆环分为 N 段,将这 N 段顺时针依次编为1,⋯,N 号。 每一段内有一个细胞, 要么是生存状态(以 1 表示),要么是死亡状态(以 0 表示)。 我们把每个细胞两边的细胞称作它的邻居。

在时刻0, 给出那些活着的细胞的位置, 今后任何时刻的状态, 都已经被它前面的状态按照下面的游戏规则无情地规定下来了:

出生: 在时刻t处于死亡状态的细胞, 如果他的两个邻居中恰好有1个在时刻t活着, 那么这个细胞将在t+1时刻变成生存状态。

死亡: 在时刻t处于生存状态的细胞, 如果他的两个邻居中恰好有0个(孤立)或2个(过于拥挤)在时刻t活着, 那么这个细胞将在t+1时刻变成死亡状态。

生存: 在时刻t处于生存状态的细胞, 如果他的两个邻居中恰好有1个在时刻t活着, 那么这个细胞在t+1时刻仍然会继续保持生存状态。

给出N和时刻0时每个细胞的生存状态, 求出时刻T时细胞的生存状态

输入格式

输入共两行:

第1行: 2个正整数N,T,以空格分隔。

第2行: N个正整数a1,a2,⋯,aN, 以空格分隔, ai表示细胞i在时刻0的状态。

ai=0表示细胞i处于死亡状态, ai=1表示细胞i处于生存状态。

输出格式

输出1行, N个数, 以空格分隔, 第i个数表示细胞i在时刻T的生存状态。(以 1 表示生存,以 0 表示死亡)

输入样例 #1

7 1
0 0 0 0 0 0 1

输出样例 #1

1 0 0 0 0 1 0

输入样例 #2

1 7
1

输出样例 #2

0

输入样例 #3

2 1
0 0

输出样例 #3

0 0

提示

数据范围:1≤N≤10000 1≤T≤1000

数据范围

输入数据满足题目正文及输入格式中给出的约束。