#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 2e5 + 224;
const long long INF = 1e9;
void solve() {
  long long n;
  cin >> n;
  vector<long long> a(n);
  for (auto &i : a) cin >> i;
  sort((a).begin(), (a).end());
  deque<long long> nw;
  for (int i = n - 1; i >= 0; --i) {
    if (i & 1) {
      nw.push_back(a[i]);
    } else {
      nw.push_front(a[i]);
    }
  }
  bool ok = true;
  for (int i = 1; i < n - 1; ++i) {
    if (nw[i] >= nw[i - 1] + nw[i + 1]) {
      ok = false;
    }
  }
  if (nw[0] >= nw[n - 1] + nw[1] || nw[n - 1] >= nw[0] + nw[n - 2]) {
    ok = false;
  }
  cout << (ok ? "YES\n" : "NO\n");
  if (ok) {
    for (auto &i : nw) cout << i << ' ';
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0), cout.tie(0);
  long long t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
