#include <bits/stdc++.h>
using namespace std;
int arr[100005], sorted[100005];
int main() {
  long long n, c = 0;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> arr[i];
  }
  sort(arr, arr + n);
  int k = 0;
  for (int i = 0; i < n; i += 2, k++) {
    sorted[k] = arr[i];
  }
  for (int i = (n % 2 == 0) ? n - 1 : n - 2; i >= 0; i -= 2, k++) {
    sorted[k] = arr[i];
  }
  bool flag = 1;
  k = 1;
  for (; k < n - 1; k++) {
    if (sorted[k] >= sorted[k - 1] + sorted[k + 1]) flag = 0;
  }
  if (sorted[0] >= sorted[1] + sorted[n - 1]) flag = 0;
  if (flag) {
    cout << "YES" << endl;
    for (int i = 0; i < n; i++) {
      cout << sorted[i] << ' ';
    }
  } else
    cout << "NO";
  return 0;
}
