import math def main(): import sys input = sys.stdin.read data = input().split() N = int(data[0]) X = int(data[1]) Y = int(data[2]) R = list(map(int, data[3:3+N])) if N == 1: dist_sq = X**2 + Y**2 required = R[0] ** 2 print("Yes" if dist_sq == required else "No") return sum_R = sum(R) R_sorted = sorted(R, reverse=True) M = R_sorted[0] cnt = 1 for i in range(1, N): if R_sorted[i] == M: cnt += 1 else: break if cnt < N: second_max = R_sorted[cnt] else: second_max = M dist = math.hypot(X, Y) for r_last in R: sum_rest = sum_R - r_last if r_last == M: if cnt > 1: max_rest = M else: max_rest = second_max else: max_rest = M A = max(0, 2 * max_rest - sum_rest) B = sum_rest C = abs(max_rest - r_last) D_val = max_rest + r_last lower_total = A - D_val upper_total = B + D_val point_lower = dist - r_last point_upper = dist + r_last if (upper_total >= point_lower - 1e-9) and (lower_total <= point_upper + 1e-9): print("Yes") return print("No") if __name__ == "__main__": main()