eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Циркуляція

Циркуляція

Назвемо \textit{циркуляцією} потік величини \textbf{0}. Задано орієнтовний граф з нижніми та верхніми пропускними здатностями, тобто для довільних вершин \textbf{i} та \textbf{j} повинно бути вірним, що \textbf{l_ij} ≤ \textbf{f_ij} ≤ \textbf{c_ij}, де \textbf{l_ij} - нижня межа, а \textbf{c_ij} - верхня. Потрібно знайти циркуляцію у заданому графі, яка задовольняє заданим обмеженням. \InputFile У першому рядку вхідного файлу \textbf{2} цілих числа \textbf{N} та \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{200}, \textbf{0} ≤ \textbf{M} ≤ \textbf{15000}). Далі йде \textbf{M} рядків, які описують ребра графа. Кожен рядок містить \textbf{4} цілих додатніх числа \textbf{i}, \textbf{j}, \textbf{l_ij} та \textbf{cij} (\textbf{0} ≤ \textbf{l_ij} ≤ \textbf{c_ij} ≤ \textbf{10^5}), які означають, що ребро веде з вершини під номером \textbf{i} у вершину під номером \textbf{j} з нижньою межею \textbf{l_ij} та верхньою \textbf{c_ij}. Гарантується, що якщо у графі є ребро з \textbf{i} в \textbf{j}, то немає ребра з \textbf{j} в \textbf{i}. \OutputFile Якщо не існує циркуляції, яка задовольняє заданим обмеженням, виведіть \textbf{NO}. Інакше у першому рядку виведіть \textbf{YES}. Далі у \textbf{M} рядках повинно міститись по одному числу. У \textbf{i}-ому рядку - величина потоку по ребру у \textbf{i}-ому рядку у вхідному файлі. Нагадаємо, що для довільних \textbf{i} та \textbf{j} повинно бути вірним, що \textbf{l_ij} ≤ \textbf{f_ij} ≤ \textbf{c_ij}.
Ліміт часу 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