#include <bits/stdc++.h>
using namespace std;
void past_code();
int main() {
  bool b = true;
  int x;
  cin >> x;
  int *y = new int[x];
  int *q = new int[x];
  for (int i = 0; i < x; i++) cin >> y[i];
  sort(y, y + x);
  q[0] = y[x - 1], q[1] = y[x - 2], q[x - 1] = y[x - 3];
  for (int i = 0; i < x - 3; i++) q[i + 2] = y[i];
  for (int i = 0; i < x; i++) {
    if (i == 0) {
      if (q[x - 1] + q[i + 1] <= q[0]) {
        cout << "NO\n";
        b = false;
        break;
      }
    } else if (i == x - 1) {
      if (q[0] + q[i - 1] <= q[i]) {
        cout << "NO\n";
        b = false;
        break;
      }
    } else if (q[i + 1] + q[i - 1] <= q[i]) {
      cout << i << endl;
      cout << "NO\n";
      b = false;
      break;
    }
  }
  if (b) {
    cout << "YES\n";
    for (int i = 0; i < x; i++) cout << q[i] << " ";
    cout << endl;
  }
  return 0;
}
