#loj5644. 「PA 2014 Final」Gra w podwajanie
「PA 2014 Final」Gra w podwajanie
[AdditionalFile5644.zip](file://AdditionalFile5644.zip?type=additional_file)
#5644. 「PA 2014 Final」Gra w podwajanie
标签: 传统 | 时间限制: 14500 ms | 内存限制: 128 MiB |
题目描述
题目译自 PA 2014 Final Gra w podwajanie
翻倍游戏与其说是一项游戏,不如说更像是一场解谜。游戏棋盘呈长方形,被划分为若干个单位正方形格子。初始时,某些格子里放有一个筹码,而另一些格子则是空的。
玩家的目标是在单个格子里收集尽可能多的筹码。唯一可执行的操作是:在棋盘上寻找两个相邻(共有边界)且含有相同(正数)筹码数的格子,然后将其中一格的所有筹码全部移入另一格中。
请编写一个程序,对于给定的棋盘初始配置,计算每个格子最终能收集到的最大筹码数量。
输入格式
输入的第一行包含两个整数 和 ,分别代表棋盘的行数和列数。
接下来的 行中,每行包含一个由 个数字 或 组成的字符串。数字 表示该格子里初始有一个筹码,数字 则表示该格子为空。
输出格式
你的程序应当输出 行,每行包含 个整数。其中第 行的第 个数字应表示:从给定的初始配置开始,玩家在第 行第 列的格子里最终所能收集到的最大筹码数量。
样例
输入
3 4
0111
1011
1011
输出
0 2 4 4
2 0 4 4
2 0 4 4

上图说明了如何在中间行和最后一列的交叉格子中收集到 个筹码。