Довільна циркуляція#4590

Довільна циркуляція

1 секунда
64 мегабайти
Складна

Дано орієнтовану мережу . Для кожного ребра задано пропускну здатність c_i і нижню межу потоку l_i. Це означає, що потік f_i по ребру повинен задовольняти нерівність l_i \le f_i \le c_i.

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

Ваша задача — знайти будь-яку циркуляцію у заданій мережі.

Вхідні дані

У першому рядку задано два цілі числа і (1 \le n \le 200, 0 \le m \le 400) — кількість вершин і ребер у мережі. Далі в рядках описані ребра у форматі \text{from}_i\ \text{to}_i\ l_i\ c_i, де \text{from}_i — початкова вершина, \text{to}_i — кінцева вершина, l_i — нижня межа потоку ребром, c_i — пропускна здатність (1 \le \text{from}_i,\ \text{to}_i \le n, 0 \le l_i \le c_i \le 10^5). Всі числа цілі. У графі немає кратних ребер і петель.

Якщо є ребро з в , то немає ребра з в (тобто немає пари зворотних ребер).

Вихідні дані

Якщо циркуляції не існує, виведіть NO. Інакше виведіть YES, а потім рядків: -ий з них повинен містити потік f_i через -е ребро у знайденій циркуляції.

Приклади

Приклад 1

Loading
Loading