3200.Guess the Tree

Time Limit: 1s Memory Limit: 256MB

Iahub and Iahubina went to a picnic in a forest full of trees. Less than 5 minutes passed before Iahub remembered of trees from programming. Moreover, he invented a new problem and Iahubina has to solve it, otherwise Iahub won't give her the food.

Iahub asks Iahubina: can you build a rooted tree, such that
each internal node (a node with at least one son) has at least two sons; node i has ci nodes in its subtree?
Iahubina has to guess the tree. Being a smart girl, she realized that it's possible no tree can follow Iahub's restrictions. In this way, Iahub will eat all the food. You need to help Iahubina: determine if there's at least one tree following Iahub's restrictions. The required tree must contain n nodes.

Input Format(From the terminal/stdin)

The first line of the input contains integer n (1 \le n \le 24). Next line contains n positive integers: the i-th number represents ci (1 \le ci \le n).

Output Format(To the terminal/stdout)

Output on the first line "YES" (without quotes) if there exist at least one tree following Iahub's restrictions, otherwise output "NO" (without quotes).

Sample Input 1

Copy
4
1 1 1 4
 \n
 · · · \n

Sample Output 1

Copy
YES
   \n

Sample Input 2

Copy
5
1 1 5 2 1
 \n
 · · · · \n

Sample Output 2

Copy
NO
  \n

Submit

请先 登录

© 2025 FAQs