スライムの配置は2HWパターンだけあり、動く床の状態は A, B の2パターンだけあります。
そのため、鳩の巣原理より 2×2HW 秒後までに、必ず配置パターンの変化にループが生じます。
よって、ループが生じるまでスライムの移動をシミュレーションすれば良いです。
ループに入るまでに toffset 秒、ループを 1 周するのに tloop 秒だけかかるとすると、
t 秒後のスライムの配置は、
- t<toffset なら toffset 秒後のシミュレーション結果
- t≥toffset なら (t−toffset) を tloop で割った余りを tr として、tr 秒後のシミュレーション結果
となります。
なお、スライムは動く床に従って規則的に移動するため、実際に取り得る配置パターン数 P は 2×2HW に比べて非常に小さくなります。
1 秒毎のスライムの移動は、動く床の数 HW に比例した時間でシミュレーションできるので、計算量は全体で O(HWP) です。