/* -*- coding: utf-8 -*- * * 2812.cc: No.2812 Plus Minus Blackboard - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ using ll = long long; using msl = multiset; /* global variables */ int as[MAX_N]; /* subroutines */ /* main */ int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", as + i); msl pv, mv; for (int i = 0; i < n; i++) { if (as[i] > 0) pv.insert(as[i]); else if (as[i] < 0) mv.insert(-as[i]); } while (! pv.empty() && ! mv.empty()) { ll u = *pv.begin(); pv.erase(pv.begin()); ll v = *mv.begin(); mv.erase(mv.begin()); ll d = u - v; if (d > 0) pv.insert(d); else if (d < 0) mv.insert(-d); } if (pv.size() + mv.size() <= 1) puts("Yes"); else puts("No"); return 0; }