#include <bits/stdc++.h>
using namespace std;
bool check(long long ar[], long long n) {
  bool flag = true;
  for (long long i = 1; i < n; i++) {
    if (ar[i] >= (ar[i - 1] + ar[(i + 1) % n])) {
      flag = false;
      break;
    }
  }
  return flag;
}
int32_t main() {
  long long n;
  cin >> n;
  long long temp[n];
  for (long long i = 0; i < n; i++) {
    cin >> temp[i];
  }
  sort(temp, temp + n);
  long long ar[n];
  long long k = 0;
  for (long long i = n - 3; i >= 0; i--, k++) ar[k] = temp[i];
  ar[k++] = temp[n - 2];
  ar[k++] = temp[n - 1];
  if (check(ar, n)) {
    cout << "YES\n";
    for (auto k : ar) cout << k << " ";
  } else {
    cout << "NO\n";
  }
  return 0;
}
