#include <bits/stdc++.h>
using namespace std;
void File() {
  freopen("output.txt", "w", stdout);
  freopen("input.txt", "r", stdin);
}
int countDivisors(long long n) {
  int cnt = 0;
  for (long long i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        cnt++;
      else
        cnt += 2;
    }
  }
  return cnt;
}
int const N = 5e5 + 9, MOD = 1e9 + 7, oo = 1e9 + 7;
vector<vector<int>> adj(N);
vector<bool> visited(N);
vector<int> start(N), finish(N);
int n = 5;
long long arr[N];
int one, zero;
int main() {
  cin >> n;
  for (int i = 0; i < int(n); i++) cin >> arr[i];
  sort(arr, arr + n);
  for (int i = n - 1; i >= 0; i--) {
    swap(arr[i], arr[n - 1]);
    int l = i - 1;
    int r = i + 1;
    if (r == n) r = 0;
    if (l == -1) l = n - 1;
    if (arr[l] + arr[r] > arr[i]) {
      cout << "YES\n";
      for (int i = 0; i < int(n); i++) cout << arr[i] << ' ';
      return 0;
    }
    swap(arr[i], arr[n - 1]);
  }
  cout << "NO";
  return 0;
}
