No.359

座標圧縮の変形を使う.

置いてある竹の長さ をすべて並べ, を追加してソートする. ソート後の並びを とする. ただし, より小さい値と より大きい値は除外する.

空いている部分の片方を とすると, たとえば の場合はすべて門松行列になるか, すべて門松行列にならないかのどちらかである.

よって, の適当な値で門松行列になるか, で門松行列になるか, の適当な値で門松行列になるか, で門松行列になるか… と調べていけばいい.