#include <bits/stdc++.h>
using namespace std;
map<int, int> ooxx;
int s[100010];
int num[100010];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", &s[i]);
  if (n == 1) {
    printf("YES\n");
    return 0;
  }
  sort(s, s + n);
  memset(num, 0, sizeof(num));
  int id = 0;
  num[id] = 1;
  bool flag = true;
  for (int i = 1; i < n && flag; i++) {
    if (s[i] == s[i - 1])
      num[id]++;
    else {
      if (s[i] - s[i - 1] > 1)
        flag = false;
      else {
        id++;
        num[id] = 1;
      }
    }
  }
  if (!flag)
    printf("NO\n");
  else {
    for (int i = 1; i < id && flag; i++) {
      if (num[i] <= num[i - 1]) flag = false;
      num[i] -= num[i - 1];
    }
    if (num[id] != num[id - 1]) flag = false;
    if (flag)
      printf("YES\n");
    else
      printf("NO\n");
  }
  return 0;
}
