CF317C Balance
题目描述
给定一个包含 $n$ 个盛有水的容器的系统。若干对容器之间通过带有输液机制的管道相连。可以在通过这些管道(每根管道均为双向)连接的两只容器之间转移整数升的水。同一对容器之间可能有多根管道。管道总数为 $e$。每个容器的容积为 $v$ 升。当然,在输水过程中,任何容器中的水量都不能超过 $v$ 升。
现给出各容器的初始含水量 $a_{i}$ 以及所需的目标水量 $b_{i}$,请你设计一组输水操作方案来完成任务。总共的输水操作次数不得超过 $2n^2$。
输入格式
输入的第一行包含整数 $n$、$v$、$e$($1\leq n\leq300$,$1\leq v\leq 10^9$,$0\leq e\leq 50000$)。
接下来的两行每行包含 $n$ 个整数:第 $i$ 个容器的初始水量 $a_{i}$ 与目标水量 $b_{i}$($0\leq a_{i},b_{i}\leq v$)。
接下来的 $e$ 行,每行格式为 $x$ $y$($1\leq x,y\leq n, x\neq y$),表示一根连接编号为 $x$ 和 $y$ 的容器的管道。两容器之间可能有多根管道。你可以认为容器编号为 $1$ 到 $n$。
输出格式
如果不存在满足要求的输水方案,输出 "NO"(不含引号)。
否则,输出一组合法方案。第一行输出输水操作总数 $k$($k$ 不得超过 $2n^2$)。接下来的 $k$ 行,每行输出一个输水操作 $x$ $y$ $d$(表示从编号为 $x$ 的容器向编号为 $y$ 的容器输送 $d$ 升水,$x\neq y$,$d$ 为非负整数)。
说明/提示
由 ChatGPT 5 翻译