結果

問題 No.1944 ∞
ユーザー lam6er
提出日時 2025-03-26 15:51:15
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 997 bytes
コンパイル時間 441 ms
コンパイル使用メモリ 82,384 KB
実行使用メモリ 102,784 KB
最終ジャッジ日時 2025-03-26 15:52:14
合計ジャッジ時間 3,496 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 27 WA * 9
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

def main():
    import sys
    input = sys.stdin.read().split()
    idx = 0
    N = int(input[idx])
    idx += 1
    X = int(input[idx])
    idx += 1
    Y = int(input[idx])
    idx += 1
    R = list(map(int, input[idx:idx + N]))
    
    D = math.hypot(X, Y)
    
    if N == 0:
        print("No")
        return
    
    R_sorted = sorted(R, reverse=True)
    sum_r = sum(R)
    max1 = R_sorted[0]
    max2 = R_sorted[1] if N >= 2 else 0
    
    for r_last in R:
        sum_prev = sum_r - r_last
        if N == 1:
            m_prev = 0
        else:
            if r_last == max1:
                m_prev = max2 if N >= 2 else 0
            else:
                m_prev = max1
        
        a = max(0, 2 * m_prev - sum_prev)
        b = sum_prev
        
        lower = a + (m_prev - r_last)
        upper = b + (m_prev + r_last)
        
        if lower <= D <= upper:
            print("Yes")
            return
    
    print("No")

if __name__ == "__main__":
    main()
0