#include <bits/stdc++.h>
using namespace std;
int n;
int a[100100];
vector<int> h, p, s;
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  sort(a, a + n);
  int flag = 0;
  if (a[n - 2] + a[n - 3] <= a[n - 1]) {
    printf("NO\n");
    return 0;
  }
  printf("YES\n");
  for (int i = n - 1; i >= 0; i--) {
    if (!flag)
      h.push_back(a[i]);
    else
      p.push_back(a[i]);
    flag = !flag;
  }
  for (int i = 0; i < h.size(); i++) {
    s.push_back(h[i]);
  }
  for (int i = p.size() - 1; i >= 0; i--) {
    s.push_back(p[i]);
  }
  for (int i = 0; i < s.size(); i++) printf("%d ", s[i]);
  return 0;
}
