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

Произвольная циркуляция

Произвольная циркуляция

Задана ориентированная сеть \textbf{G}. Для каждого ребра кроме его пропускной способности \textbf{c_i}, указана еще и нижнее ограничение на поток по ребру \textbf{l_i}. Это обозначает, что поток по ребру должен удовлетворять неравенству \textbf{l_\{i \}}≤ \textbf{f_i} ≤ \textbf{c_i}. \textit{Циркуляцией} в сети называется любой поток величины \textbf{0}. То есть для циркуляции верно, что в любую вершину сколько единиц потока втекает, столько и вытекает из нее (в случае потока это не верно для истока и стока сети). Ваша задача найти произвольную циркуляцию в заданной сети. \InputFile В первой строке записана пара целых чисел (\textbf{1} ≤ \textbf{n} ≤ \textbf{200}, \textbf{0} ≤ \textbf{m} ≤ \textbf{400}), где \textbf{n} --- количество вершин в сети, а \textbf{m}--- количество ребер. Далее в \textbf{m} строках перечислены ребра в формате \textbf{from_i}, \textbf{to_i}, \textbf{l_i}, \textbf{c_i}, где \textbf{from_i} - это индекс стартовой вершины ребра, \textbf{to_i} - это индекс конечной вершины ребра, \textbf{l_i} --- нижняя граница величины потока по ребру, а \textbf{c_i} --- верхняя граница (\textbf{1} ≤ \textbf{from_i}, \textbf{to_i} ≤ \textbf{n}, \textbf{0} ≤ \textbf{l_i} ≤ \textbf{c_i} ≤ \textbf{10^5}). Все числа --- целые. В графе отсутствуют кратные ребра и петли. Если в сети есть ребро из \textbf{a} в \textbf{b}, то в сети отсутствует ребро из \textbf{b} в \textbf{a} (то есть встречных ребер нет). \OutputFile Если решения не существует, то выведите \textbf{NO}. В противном случае выведите \textbf{YES}. Далее в случае положительного ответа выведите \textbf{m} строк. \textbf{m}-я строка должна содержать количество потока, протекающего по \textbf{i}-ой дуге в искомой циркуляции.
Лимит времени 1 секунда
Лимит использования памяти 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