トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

Problem256 畳禁止の部屋

問題

畳とは, 部屋の床を重なりなく敷き詰めるのに使われる長方形の敷物である.

手に入る畳の寸法を 1x2 のみと仮定すると, 敷き詰める部屋の形や大きさには明らかにいくらかの制約がある.

本問では, 整数の寸法 a, b, 偶数の大きさ S = a*b をもつ長方形の部屋のみを考える.
「大きさ」という言葉は部屋の表面積を表すのに用い,
また一般性を失わないよう a <= b という条件を加える.

畳を並べるに当たって1つのルールがある:
4枚の異なる畳の角が合う箇所があってはならない.
例えば, 4x4 の部屋に対し下記の二つの並べ方を考える:



左の並べ方は条件を満たすが, 右は満たさない:中央の赤 "X" は, 4枚の畳が合う箇所を示している.

このルールにより, いくらかの偶数の大きさの部屋は畳を敷くことができない.
これらを畳禁止の部屋と呼ぶ.
さらに, 大きさが S となる畳禁止の部屋の数を T(S) と定義する.

最も小さな畳禁止の部屋は, 大きさが S = 70 で寸法が 7x10 である.
大きさが S = 70 の他の部屋はすべて畳を敷くことができる;1x70, 2x35, 5x14 である.
ゆえに T(70) = 1 である.

同様に, 大きさが S = 1320 の畳禁止の部屋はちょうど 5 つあるため,
T(1320) = 5 であることが確かめられる:20x66, 22x60, 24x55, 30x44, 33x40 である.
実際, S = 1320 は T(S) = 5 となる最も小さな部屋の大きさ S である.

T(S) = 200 となる最も小さな部屋の大きさ S を求めよ.


ソース



実行結果



解説