Олимпиадный тренинг

Задача . C. Угадай дерево


Яхуб и Яхубина пошли на пикник. Зашли они в густой лес. Не прошло и пяти минут, как Яхуб вспомнил про деревья в информатике. Более того, он придумал новую задачу, и Яхубине надо ее решить, а не то Яхуб ее не покормит.

Яхуб спрашивает у Яхубины: можешь ли ты построить такое корневое дерево, что

  • каждая внутренняя вершина дерева (вершина, имеющая хотя бы одного сына) имеет по меньшей мере двух сыновей;
  • у вершины i в поддереве содержится ci вершин?

Яхубина должна придумать описанное дерево. Она девушка умная и поняла, что, возможно, описанного дерева вовсе не существует. Тогда вся еда достанется Яхубу. Вы должны помочь Яхубине: определите, есть ли хотя бы одно дерево, удовлетворяющее ограничениям Яхуба. Требуемое дерево должно состоять из n вершин.

Входные данные

В первой строке записано целое число n (1 ≤ n ≤ 24). В следующей строке записано n положительных целых чисел: i-е число обозначает ci (1 ≤ ci ≤ n).

Выходные данные

Выведите в первой строке «YES» (без кавычек), если хотя бы одно дерево удовлетворяет ограничениям Яхуба, в противном случае выведите «NO» (без кавычек).


Примеры
Входные данныеВыходные данные
1 4
1 1 1 4
YES
2 5
1 1 5 2 1
NO

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя