Orac and Game of Life - #641 div2 e

問題

n * m の 0 か 1 の grid が与えられる.
毎ターン, それぞれのマスが, 隣り合う同じ色のマスをもたなければそのままで, それ以外なら 0, 1 反転する.
t つの query が与えられる.
p ターン後, マス (i, j) の数を答える.

考察

市松模様なら, 最初の grid のまま.


隣あう同じ数のマスがあれば, ともに反転する.
隣に同じ数のマスができたら, 以降反転し続ける.


0101010
1010101
0101010
1010100
のように, 市松模様で部分的に壊れている場合, そこから反転するマスが広がっていく.


最初の grid で, 一番近い, 反転するマスがわかればいい.
計算量が...

解法

「最初の grid で, 一番近い, 反転するマスがわかればいい」と上に書いたが, bfs でやる.


ソースコード
https://codeforces.com/contest/1350/submission/81448139