from fractions import Fraction from itertools import combinations from sys import stdin def main(): input = stdin.read().split() N = int(input[0]) A = list(map(int, input[1:N+1])) entire_set = frozenset(A) memo = {} def compute_values(s): if s in memo: return memo[s] if len(s) == 1: val = next(iter(s)) res = {Fraction(val)} memo[s] = res return res possible = set() elements = sorted(list(s)) first_element = elements[0] n = len(elements) for l in range(1, n): for indices in combinations(range(n), l): if 0 not in indices: continue subset_elements = [elements[i] for i in indices] s1 = frozenset(subset_elements) s2 = s - s1 if not s2: continue vals1 = compute_values(s1) vals2 = compute_values(s2) for v1 in vals1: for v2 in vals2: possible.add(v1 + v2) possible.add(v1 - v2) possible.add(v2 - v1) possible.add(v1 * v2) if v2 != 0: possible.add(v1 / v2) if v1 != 0: possible.add(v2 / v1) memo[s] = possible return possible elements = sorted(A) first_element = elements[0] found = False for l in range(1, len(elements)): for indices in combinations(range(len(elements)), l): if 0 not in indices: continue subset = [elements[i] for i in indices] s1 = frozenset(subset) s2 = entire_set - s1 if not s2: continue vals1 = compute_values(s1) vals2 = compute_values(s2) if vals1 & vals2: found = True print("YES") return print("NO") if __name__ == "__main__": main()