EduBrick

I. Бывает ли такой граф

2000 мс · 256 МБ · всё или ничего

Дана последовательность из nn чисел. Выясните, существует ли простой неориентированный граф на nn вершинах, у которого степени вершин равны этим числам. Порядок значения не имеет.

Простой — значит без петель и кратных рёбер.

Первое, что стоит проверить, — лемму о рукопожатиях: сумма степеней равна удвоенному числу рёбер, поэтому она обязана быть чётной. Но одной чётности мало: последовательность 3,3,3,13, 3, 3, 1 имеет чётную сумму, а графа такого нет.

Работает такой ход: возьмём вершину наибольшей степени kk и соединим её с kk следующими по величине. Если это удалось, задача свелась к меньшей; если нет — графа не существует. Это алгоритм Хавела — Хакими.

Формат ввода

Первая строка содержит число nn (1≤n≤1001 \le n \le 100).

Вторая строка содержит nn целых чисел от 0 до 1000 — искомые степени.

Формат вывода

Слово «YES», если такой граф существует, и «NO» иначе.

Примеры

ввод
4
3 3 3 1
вывод
NO
ввод
4
3 3 3 3
вывод
YES
Войдите, чтобы отправлять решения.