入力
このチャレンジでの入力は、整数ペアのリストです。それらは平面上の単位正方形の南西の角を表し、リストは平面のサブセットとしての結合を表します。たとえば、リスト
[(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)]
この図の赤色のセットを表します。
出力
Yor出力は、平面の長方形のサブセットを表す整数の4つのリストです。より明確に、(x,y,w,h)
四角は、南西隅がである幅w > 0
と高さの長方形を表現h > 0
し(x,y)
ます。長方形は、各単位正方形がいくつかの長方形のサブセットであり、各長方形が領域のサブセットであるという意味で、入力領域を正確にカバーする必要があり、2つの長方形は境界でのみ重なり合う場合があります。些細な解決策を禁止するために、より大きな長方形にマージできる2つの長方形をカバーに含めることはできません。
たとえば、リスト
[(0,0,2,1),(0,1,3,1),(1,2,2,1)]
法的カバーを表します
上記の領域の
[(0,0,2,2),(2,1,1,1),(1,2,1,1),(2,2,1,1)]
隣接する1行1列の正方形をマージできるため、違法です。
ルール
完全なプログラムまたは機能を提供できます。入力と出力の正確なフォーマットは、理由の範囲内では重要ではありません。最短バイトカウントが優先され、標準の抜け穴は許可されません。アルゴリズムの説明といくつかの出力例を提供することをお勧めします。
テストケース
U字型の領域:
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(2,0),(2,1),(3,0),(3,1),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)]
大きな三角形:
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(3,0),(3,1),(3,2),(3,3),(3,4),(3,5),(3,6),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(5,0),(5,1),(5,2),(5,3),(5,4),(6,0),(6,1),(6,2),(6,3),(7,0),(7,1),(7,2),(8,0),(8,1),(9,0)]
穴のある正方形:
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,5),(1,6),(1,7),(1,8),(1,9),(2,0),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(3,0),(3,1),(3,2),(3,4),(3,5),(3,6),(3,7),(3,8),(3,9),(4,0),(4,1),(4,2),(4,3),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,7),(5,8),(5,9),(6,1),(6,2),(6,3),(6,5),(6,6),(6,7),(6,8),(6,9),(7,0),(7,1),(7,2),(7,3),(7,4),(7,5),(7,6),(7,7),(7,8),(7,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,4),(9,5),(9,6),(9,7),(9,8),(9,9)]
切断された領域:
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(1,0),(1,1),(1,2),(1,3),(1,4),(1,6),(1,7),(1,8),(1,9),(2,1),(2,2),(2,3),(2,4),(2,5),(2,6),(2,7),(2,8),(2,9),(4,0),(4,1),(4,2),(4,4),(4,5),(4,6),(4,7),(4,8),(4,9),(5,0),(5,1),(5,2),(5,3),(5,4),(5,5),(5,6),(5,7),(5,8),(5,9),(6,0),(6,1),(6,2),(6,4),(6,5),(6,6),(6,7),(6,8),(6,9),(8,0),(8,1),(8,2),(8,3),(8,4),(8,5),(8,6),(8,7),(8,8),(8,9),(9,0),(9,1),(9,2),(9,3),(9,7),(9,8),(9,9),(10,0),(10,1),(10,2),(10,3),(10,4),(10,5),(10,6),(10,7),(10,8),(10,9)]
検証者
この Python 2プログラムを使用して、ソリューションを検証します。STDINから、コンマで区切られたタプルのリスト(入力)と4倍のリスト(出力)を受け取ります。
また、この Python 2プログラムを作成して写真を生成しましたが、これも使用できます。STDINからタプルまたは4つのいずれかのリストを取得し、という名前のファイルを生成しますout.png
。PILライブラリが必要です。必要に応じて、グリッドセルのサイズとグリッド線の幅も変更できます。