#include <bits/stdc++.h>
using namespace std;
const int N = 1e5;
int n;
long long num[N + 5], ans[2 * N + 5];
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%lld", &num[i]);
  sort(num + 1, num + 1 + n);
  int lef = N - 1, rig = N + 1;
  ans[N] = num[1];
  for (int i = 2; i <= n; i++) {
    if (i % 2)
      ans[lef--] = num[i];
    else
      ans[rig++] = num[i];
  }
  for (int i = lef + 1; i < rig; i++) {
    int A, B;
    if (i == lef + 1) A = rig - 1, B = i + 1;
    if (i == rig - 1) A = i - 1, B = lef + 1;
    if (lef + 1 < i && i < rig - 1) A = i - 1, B = i + 1;
    if (ans[A] + ans[B] <= ans[i]) {
      printf("NO\n");
      return 0;
    }
  }
  printf("YES\n");
  for (int i = lef + 1; i < rig; i++)
    printf("%lld%c", ans[i], i == rig - 1 ? '\n' : ' ');
  return 0;
}
