結果

問題 No.1381 Simple Geometry 1
ユーザー 👑 SPD_9X2SPD_9X2
提出日時 2021-02-07 21:04:34
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 42 ms / 2,000 ms
コード長 453 bytes
コンパイル時間 1,367 ms
コンパイル使用メモリ 82,176 KB
実行使用メモリ 51,968 KB
最終ジャッジ日時 2024-07-04 14:15:58
合計ジャッジ時間 2,295 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
from sys import stdin

X,Y,Z,W = map(int,stdin.readline().split())

l = Y
r = X+1

while r-l > 10**(-5):

    m = (l+r)/2

    apy = m
    bpz = X / m

    bp2 = Y**2 + bpz**2
    bq2 = Z**2 + apy**2

    #bp2が大きすぎる = bzが大きすぎる = ayが小さすぎる場合
    if bp2 > bq2 and bp2**0.5-bq2**0.5 > W:
        l = m
    else:
        r = m

a = (l+r)/2 - Y
b = X / (a+Y) - Z

print ( X - (a*b + (a+Y)*Z + Y*(b+Z) )/2 )
0