#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
const long long int INFLL = 1e18 + 10;
const long double EPS = 1e-8;
const long double EPSLD = 1e-14;
const long long int MOD = 1e9 + 7;
template <class T>
T &chmin(T &a, const T &b) {
  return a = min(a, b);
}
template <class T>
T &chmax(T &a, const T &b) {
  return a = max(a, b);
}
const int MAX_N = 100010;
int n;
int a[MAX_N];
int cnt[MAX_N];
int main() {
  scanf("%d", &n);
  for (int i = (0); i < (int)(n); i++) scanf("%d", &a[i]);
  sort(a, a + n);
  int minv = a[0];
  int maxv = a[n - 1];
  if (maxv - minv >= MAX_N) return puts("NO");
  int m = maxv - minv;
  for (int i = (0); i < (int)(n); i++) cnt[a[i] - minv]++;
  cnt[0]--;
  cnt[m]--;
  for (int i = (1); i < (int)(m); i++) {
    if (cnt[i] < 2) return puts("NO");
    cnt[i] -= 2;
  }
  for (int i = (0); i < (int)(m + 1); i++) {
    if (cnt[i + 1] < cnt[i]) return puts("NO");
    cnt[i + 1] -= cnt[i];
    cnt[i] = 0;
  }
  puts("YES");
  return 0;
}
