eolymp
Задачі

Охолодження реактора

Охолодження реактора

Група молодих вчених в одній з країн, що розвиваються, вирішила побудувати атомний реактор для отримання збагачаного плутонія. Вам, як комп'ютерному генію цієї групи, доручили розробити систему охолодження реактора.

Система охолодження реактора являє собою набір труб, які з'єднують вузли. По трубам тече рідина, причому для кожної труби строго визначено напрямок, у якому вона повинна по ній текти. Вузли системи охолодження пронумеровані від 1 до N. Система охолодження повинна бути спроектована таким чином, щоб для кожного вузла за одиницю часу кількість рідини, яка втікає у вузол, була рівна кількості рідини, яка витікає з вузла. Тобто якщо з i-го вузла у j-ий тече fij одиниць рідини за одиницю часу (якщо з i в j немає труби, то покладемо fij = 0), то для кожного вузла i повинно виконуватись:

prb2093

У кожної труби є пропускна здатність cij. Крім того, для забезпечення достатнього охолодження потрібно, щоб по трубі протікало не менше lij одиниць рідини за одиницю часу. Тобто для труби, яка веде з i-го вузла у j-ий повинно виконуватись lijfijcij.

Вам задано опис системи охолодження, виясніть, яким чином можна пустити рідину по трубам, щоб виконувались усі вказані умови.

Вхідні дані

Перший рядок вхідного файлу містить числа N та M – кількість вузлів та труб (1N200). Наступні M рядків містять описи труб. Кожен рядок містить чотири цілих числа i, j, lij та cij. Довільні два вузли з'єднані не більше ніж однією трубою, якщо є труба з i в j, то немає труби з j в i, ніякий вузол не з'єднано трубою сам з собою, 0lijcij105.

Вихідні дані

Якщо розв'язок існує, виведіть у першому рядку вихідного файлу слово YES. Потім виведіть M чисел – кількість рідини, яка повинна протікати по трубам, числа повинні бути виведені у тому порядку, у якому труби задані у вхідному файлі. Якщо розв'зку не існує, виведіть NO.

Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
4 6
1 2 1 2
2 3 1 2
3 4 1 2
4 1 1 2
1 3 1 2
4 2 1 2
Вихідні дані #1
NO