名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

CodeForce 313 Div.2 - B. Gerald is into Art

※最高の糞コード

回答

Submission #12187667 - Codeforces

境界内に四角形が2つおけるか? という問題.
回転して総当りさせたりすればいいんだけど,なんか・・・ ループが上手く行かず…
そのまま… ゴリ押しコード…

f:id:kawasumi_yume:20150723054402p:plain

イメージこんなかんじで,一つ目の四角形をとりあえず置いてみて,領域1と領域2に対して,それぞれ縦横で2つ目の四角形を置いてみて~という感じ.
もしこれがだめなら,一つ目の四角形を回転させて,同じように領域1と領域2に対して,それぞれ縦横で2つ目の四角形を(略)

っていうのはアルゴリズム的にはわかってるんだけど,プログラム上で実現できないところが弱いですね…
実装力のなさを感じました.もっとスマートに書きたい.

a1, b1 = map(int, input().split())
a2, b2 = map(int, input().split())
a3, b3 = map(int, input().split())

c1 = a1 - a2
c2 = b1 - b2
if c1 >= 0 and c2 >= 0:
    ans = [0, 0, 0, 0]
    ans[0] = 1 if c1 - a3 >= 0 and b1 - b3 >= 0 else 0
    ans[1] = 1 if c1 - b3 >= 0 and b1 - a3 >= 0 else 0
    ans[2] = 1 if a1 - a3 >= 0 and c2 - b3 >= 0 else 0
    ans[3] = 1 if a1 - b3 >= 0 and c2 - a3 >= 0 else 0
    if sum(ans) > 0:
        print("YES")
        exit(0)

d1 = a1 - b2
d2 = b1 - a2
if d1 >= 0 and d2 >= 0:
    ans = [0, 0, 0, 0]
    ans[0] = 1 if d1 - a3 >= 0 and b1 - b3 >= 0 else 0
    ans[1] = 1 if d1 - b3 >= 0 and b1 - a3 >= 0 else 0
    ans[2] = 1 if a1 - a3 >= 0 and d2 - b3 >= 0 else 0
    ans[3] = 1 if a1 - b3 >= 0 and d2 - a3 >= 0 else 0
    if sum(ans) > 0:
        print("YES")
        exit(0)

print("NO")