Problem:

Problem E: Donut Hole

Problem

  あなたはACPCのために横$W$縦$H$の長方形で平べったく、穴のないドーナツを持参しました。

  このドーナツを$2$次元平面上の座標$(0,0)$にドーナツの中心を重ね、長さがHの辺と$y$軸が平行になるように置きます。

ACPC$1$日目にあなたは座標($x$,$y$)を中心に横$w$縦$h$の範囲に存在するドーナツを食べました。

$2$日目と$3$日目に食べる量を等しくしたいあなたは、座標$(0,0)$を通る直線でドーナツを分割し、直線の片側の領域にあるドーナツの面積の総和がもう片側の領域にあるドーナツの面積の総和と等しくなっているようにしたいと考えています。

  そのような直線の傾きを一つ求めてください。

Input

入力は以下の形式で与えられる。

$W$ $H$ $w$ $h$ $x$ $y$

Constraints

入力は以下の条件を満たす。

  
$1 \lt h \lt H \lt 10^6$

  
$1 \lt w \lt W \lt 10^6$

  
$1 \le y \le (h/2+H-1)-H/2$

  
$1 \le x \le (w/2+W-1)-W/2$

  
$W$,$H$,$w$,$h$は偶数

Output

直線の傾きを一行に出力せよ。なお、絶対誤差または相対誤差が$10^{-6}$以下であれば正解となる。

Sample Input 1

6000 5000 20 10 400 300

Sample Output 1

0.75

Sample Input 2

10 10 8 8 8 8

Sample Output 2

1



Sample input:
6000 5000 20 10 400 300


Sample output:
0.75

Submission status: Accepted

Solution code:
def inpl(): return list(map(int, input().split()))
W, H, w, h, x, y = inpl()

a = (min(W//2 , x + w//2) + max(-W//2, x-w//2))
b = (min(H//2 , y + h//2) + max(-H//2, y-h//2))
print(b/a)

Submission status: Accepted

Solution code:
W, H, w, h, x, y = map(lambda x: int(x)*2, raw_input().split())
X1 = -W/2
X2 =  W/2
Y1 = -H/2
Y2 =  H/2
x1 = max(x - w/2, X1)
y1 = max(y - h/2, Y1)
x2 = min(x + w/2, X2)
y2 = min(y + h/2, Y2)
mx = (x1 + x2) / 2.0
my = (y1 + y2) / 2.0
print "%.10f" % (my / mx)

Submission status: Accepted

Solution code:
W,H,w,h,x,y = map(int, input().split())
if x+w//2 <= W//2 and y+h//2 <= H//2:
    print(y/x)
    quit()
else:
    if x+w//2 > W//2:
        x = (x-w//2+W//2)/2
    if y+h//2 > H//2:
        y = (y-h//2+H//2)/2
    print(y/x)
    quit()