Codeforces Round 572 (Div. 1) |
---|
Закончено |
Обратите внимание, что это вторая задача из двух похожих задач. Вы можете взламывать эту задачу тогда, когда решите ее. Но предыдущую только тогда, когда решите обе задачи.
Вам дано дерево с $$$n$$$ вершинами. Изначально на каждом ребре написан $$$0$$$. За одну операцию вы можете выбрать любые $$$2$$$ различных листа $$$u$$$, $$$v$$$ и любое целое число $$$x$$$, и прибавить $$$x$$$ ко всем числам записанных на ребрах на простом пути с $$$u$$$ до $$$v$$$. Обратите внимание, что в предыдущей подзадаче $$$x$$$ могло быть любым действительным, теперь оно должно быть целым.
Для примера на изображении ниже показан результат применения двух операций к графу: прибавления $$$2$$$ на пути от $$$7$$$ до $$$6$$$, а потом прибавления $$$-1$$$ на пути от $$$4$$$ до $$$5$$$.
Вам дана некоторая конфигурация из неотрицательных целых, попарно различных, четных чисел, записанных на ребрах. Для заданной конфигурации необходимо сказать, можно ли получить ее с помощью данных операций, и, если это возможно, вывести последовательность операций, которая приводит к заданной конфигурации. Ограничения на операции смотрите в формате вывода.
Лист это вершина степени $$$1$$$. Простой путь это путь, не содержащий ни одну вершину дважды.
Первая строка содержит одно целое число $$$n$$$ ($$$2 \le n \le 1000$$$) — количество вершин в дереве.
Каждая из следующих $$$n-1$$$ строк содержит три целых числа $$$u$$$, $$$v$$$, $$$val$$$ ($$$1 \le u, v \le n$$$, $$$u \neq v$$$, $$$0 \le val \le 10\,000$$$), обозначающие что между вершинами $$$u$$$ и $$$v$$$ есть ребро, на котором в заданной конфигурации написано $$$val$$$. Гарантируется, что данные ребра образуют дерево. Гарантируется, что все числа $$$val$$$ различные и четные.
Если требуемой последовательности операций не существует, в первой строке выведите «NO».
Если же она существует, в первой строке выведите «YES». Во второй строке выведите $$$m$$$ — количество операций, которое вы собираетесь применить ($$$0 \le m \le 10^5$$$). Заметьте, что минимизировать количество операций не требуется!
В следующих $$$m$$$ строках выведите операции в следующем формате:
$$$u, v, x$$$ ($$$1 \le u, v \le n$$$, $$$u \not = v$$$, $$$x$$$ — целое число, $$$-10^9 \le x \le 10^9$$$), где $$$u, v$$$ — листья, $$$x$$$ — прибавляемое число.
Гарантируется, что если существует последовательность операций, дающая заданную конфигурацию, то существует и последовательность операций, дающая ее, которая удовлетворяет всем заданными ограничениям.
5 1 2 2 2 3 4 3 4 10 3 5 18
NO
6 1 2 6 1 3 8 1 4 12 2 5 2 2 6 4
YES 4 3 6 1 4 6 3 3 4 7 4 5 2
Конфигурация с первого примера нарисована ниже, и ее невозможно достичь.
Последовательность операций с второго примера иллюстрирована ниже.
Название |
---|