#include <bits/stdc++.h>
using namespace std;
int n, a[100005], m1, m2, m3;
map<int, int> m;
int main() {
  scanf("%d", &n);
  m1 = m2 = m3 = -1;
  for (int i = 1; i <= n; ++i) {
    int x;
    scanf("%d", &x), ++m[x];
    if (m1 == -1)
      m1 = x;
    else if (x != m1 && m2 == -1)
      m2 = x;
    else if (x != m1 && x != m2 && m3 == -1)
      m3 = x;
    else
      return printf("No"), 0;
  }
  if (m[m1] > m[m2] && m2 != -1) swap(m1, m2);
  if (m[m2] > m[m3] && m3 != -1) swap(m2, m3);
  if (n % 3)
    printf("No");
  else if (m[m1] == m[m2] && m[m2] == m[m3] && m[m3] == n / 3)
    printf("Yes");
  else if (m[m1] == n / 3 && m1 == 0 && m[m2] == n / 3 * 2)
    printf("Yes");
  else if (m[m1] == n && m1 == 0)
    printf("Yes");
  else
    printf("No");
  return 0;
}
