この課題は、別の同様の課題に基づいています。長方形の最も効率的なパッキングを見つけることはNP困難であるため(つまり、その解決策は簡単に確認できるが見つけにくい)、この課題はここでの課題よりもはるかに簡単です。
この挑戦
長方形の束が与えられた場合、それらが長方形のスペースをギャップやオーバーラップなしで埋めるかどうかを把握します。
入力
入力には2つの形式があり、1つはスコアリングペナルティを伴います。
1つ目は、長さが4のサブリストのリストです。このリストには、反対の頂点の座標である4つの整数が含まれています。すべての長方形は水平/垂直になるため、長方形がどこにあるかについてのあいまいさはありません。各サブリストには、最初の頂点のx座標、最初の頂点のy座標、2番目の頂点のx座標、2番目の頂点のy座標の順に、4つの整数が含まれます。
2番目:同じ長さの整数の4つのリストが含まれます。4つのリストは異なる座標を表します。入力オプション1を行列と考えると、ここでの入力は行列の転置にすぎません。この入力には、+20%
バイトのペナルティがあります。
出力
単純な真実/偽の出力。
仕様書
エリア0(つまりx1 == x2 || y1 == y2
)の長方形がある場合は、この長方形を無視してください(そのため[0 0 1 1], [2 2 3 2]
有効です)。この仕様は、人々が最小/最大x / y値を簡単に取得することを困難にするために用意されています。
x1 <= x2
y1 <= y2
常に正しいとは限りません。の場合x1 > x2 || y1 > y2
、長方形は面積ゼロの長方形ではありません。むしろ、それは間の長方形の空間を占有(x1, y1)
して(x2, y2)
。
座標は負の値でもかまいませんが、その場合でも座標間のスペースを占めます。
左上の長方形は常にとは限りません(0, 0)
。したがって、塗りつぶされる長方形のスペースの左上隅がであるとは限りません(0, 0)
。
(これらのあいまいさを指摘してくれた@xnorに感謝)
入力方法と出力の表現方法を指定してください。
得点
スコアは、バイト単位のコードのサイズに、該当する場合はバイトのペナルティを加えたものです。12月15日の時点での最低スコアが勝利します。
テストケース
0 0 1 2
1 0 3 1 ==> true
1 1 3 2
0 0 2 2
0 0 1 1 ==> false
0 0 0 0
0 0 1 1
2 2 2 2 ==> true
0 1 2 1
頑張って、楽しいゴルフを!
x1 <= x2
とy1 <= y2
?エリア0の長方形であるx1 == x2
とy1 <= y2
可能性は?
x1 > x2
とy1 > y2
座標が切り替えられているため、これは面積ゼロの長方形のですか?