#include #define rep(i, n) for (lli i = 0; i < (n); i++) #define rrep(i, n) for (lli i = (n)-1; i >= 0; i--) using namespace std; using lli = long long int; void YESNO(bool), YesNo(bool); template bool chmin(T1 &l, const T2 &r); template bool chmax(T1 &l, const T2 &r); int main() { int n; vector a(22); cin >> n; lli N = n; n = min(n, 22); rep(i, min(n, 22)) cin >> a[i]; map s; rep(i, 1 << n) { lli ret = 0; lli sum = 0; rep(j, n) { if ((i >> j) & 1) { sum += a[j]; } } if (sum) { if (s.count(sum)) { lli mask = i & s[sum]; cout << "Yes" << endl; rep(k, N) { if (k <= 22) { if ((mask >> k) & 1) { cout << 0; } else if ((i >> k) & 1) { cout << a[k]; } else if ((s[sum] >> k) & 1) { cout << -a[k]; } else { cout << 0; } } else { cout << 0; } cout << " "; } return 0; } s[sum] = i; } } cout << "No" << endl; } // -- lib void YESNO(bool b) { cout << (b ? "YES" : "NO") << endl; } void YesNo(bool b) { cout << (b ? "Yes" : "No") << endl; } template bool chmin(T1 &l, const T2 &r) { return (l > r) ? (l = r, true) : false; } template bool chmax(T1 &l, const T2 &r) { return (l < r) ? (l = r, true) : false; }