#include using namespace std; const int k_N = 500 + 3; bool dp[k_N][k_N * k_N]; bool get_dp(int position, int sum){ sum = abs(sum); if(sum >= k_N) return false; return dp[position][sum]; } int main(){ ios::sync_with_stdio(false); cin.tie(NULL); freopen("equation.in", "r", stdin); freopen("equation.out", "w", stdout); int n; cin >> n; vector a(n); for(int i = 0; i < n; ++i) cin >> a[i]; dp[n][0] = true; for(int position = n - 1; position >= 0; --position){ for(int sum = 0; sum < k_N * k_N; ++sum){ if(get_dp(position + 1, sum + a[position]) || get_dp(position + 1, sum - a[position])) dp[position][sum] = true; else dp[position][sum] = false; } } cout << (get_dp(0, 0) ? "YES" : "NO") << "\n"; }