I. Бывает ли такой граф
Дана последовательность из чисел. Выясните, существует ли простой неориентированный граф на вершинах, у которого степени вершин равны этим числам. Порядок значения не имеет.
Простой — значит без петель и кратных рёбер.
Первое, что стоит проверить, — лемму о рукопожатиях: сумма степеней равна удвоенному числу рёбер, поэтому она обязана быть чётной. Но одной чётности мало: последовательность имеет чётную сумму, а графа такого нет.
Работает такой ход: возьмём вершину наибольшей степени и соединим её с следующими по величине. Если это удалось, задача свелась к меньшей; если нет — графа не существует. Это алгоритм Хавела — Хакими.
Формат ввода
Первая строка содержит число ().
Вторая строка содержит целых чисел от 0 до 1000 — искомые степени.
Формат вывода
Слово «YES», если такой граф существует, и «NO» иначе.
Примеры
4 3 3 3 1
NO
4 3 3 3 3
YES