結果
問題 |
No.1944 ∞
|
ユーザー |
![]() |
提出日時 | 2025-06-12 19:20:24 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,774 bytes |
コンパイル時間 | 142 ms |
コンパイル使用メモリ | 82,536 KB |
実行使用メモリ | 124,068 KB |
最終ジャッジ日時 | 2025-06-12 19:20:30 |
合計ジャッジ時間 | 4,378 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 13 WA * 2 TLE * 1 -- * 20 |
ソースコード
import math def main(): import sys input = sys.stdin.read data = input().split() idx = 0 N = int(data[idx]) idx +=1 X = int(data[idx]) idx +=1 Y = int(data[idx]) idx +=1 R = list(map(int, data[idx:idx+N])) idx += N sum_R = sum(R) D = math.hypot(X, Y) # Handle N=1 case if N == 1: if (X == 0 and Y == 0) or (X**2 + Y**2 == R[0]**2): print("Yes") else: print("No") return # For each possible R_last for r_last in R: # Compute the remaining elements temp = [x for x in R if x != r_last] if len(temp) == 0: # All elements are r_last, but since N >=2, len(temp) can't be zero here pass else: min_r_first = min(temp) max_r_first = max(temp) min_val = 2 * sum_R - max_r_first - r_last max_val = 2 * sum_R - min_r_first - r_last lower = D - r_last upper = D + r_last # Check overlap if (max_val >= lower) and (min_val <= upper): print("Yes") return # Check for the case where one R_last is the same as others, but minimal/maximal # Also, when R_last is the minimal or maximal, but R_first can be arranged # Additionally, check if the sum of all R's is sufficient # But for the third sample, this approach fails # So, perhaps another condition is needed # The problem is that the initial approach doesn't consider that the sum can be arranged to have |S| >= D - R_last even if S_total is larger # Thus, perhaps if sum_R >= D: if sum_R >= D: print("Yes") return print("No") if __name__ == "__main__": main()