func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e5 + 5;   int a[30];   bool mark[N];   bool dp[30][1000];   int n;   void update() {     dp[0][0] = 1;     for (int i = 1; i <= n; i++)       for (int j = 0; j < 1000; j++) {         dp[i][j] = dp[i - 1][j];         if (j >= a[i] && !mark[i]) dp[i][j] |= dp[i - 1][j - a[i]];       }   }   int main() {     ios_base::sync_with_stdio(0);     cin >> n;     for (int i = 1; i <= n; i++) cin >> a[i];     sort(a + 1, a + n + 1);     update();     int k = n;     for (int i = 1; i <= n; i++) {       int t = a[i] - 1;       for (int j = i - 1; j >= 1; j--) {         if (a[j] != a[i] - 1 && a[j] <= t && !mark[j] && dp[j - 1][t - a[j]]) {           update();           mark[j] = 1;           t -= a[j];           k--;         }       }       if (t) k = 200;     }     if (k == 1)       cout <<  YES ;     else       cout <<  NO ;     return 0;   }   