#include <bits/stdc++.h>
int v[100005], cerc[100005];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &v[i]);
  }
  std ::sort(v + 1, v + n + 1);
  cerc[1] = v[n];
  cerc[2] = v[n - 1];
  cerc[n] = v[n - 2];
  int par = 3;
  int impar = n - 1;
  for (int i = 3; i < n; i++) {
    if (i % 2 == 0) {
      cerc[par] = v[n - i];
      par++;
    } else {
      cerc[impar] = v[n - i];
      impar--;
    }
  }
  if (cerc[1] >= cerc[2] + cerc[n]) {
    printf("NO");
    return 0;
  }
  printf("YES\n");
  for (int i = 1; i <= n; i++) printf("%d ", cerc[i]);
}
