#include <bits/stdc++.h>
using namespace std;
const int inf = 1 << 28;
const int mod = (int)1e9 + 7;
const double eps = 1e-8;
int n, m, k;
int a[33];
int sum[33];
bool dfs(int x) {
  if (x == n + 1) return true;
  for (int i = 1; i < x; i++) {
    if (sum[i] + a[x] < a[i] && a[x] + 1 != a[i]) {
      sum[i] += a[x];
      if (dfs(x + 1)) return true;
      sum[i] -= a[x];
    }
  }
  return false;
}
int main() {
  while (cin >> n) {
    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
    sort(a + 1, a + n + 1, greater<int>());
    if (a[1] != n || count(a + 1, a + n + 1, 2)) return puts("NO");
    if (count(a + 1, a + n + 1, 1) * 2 <= n) return puts("NO");
    if (n == 1 || dfs(2))
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
