CF758E Broken Tree
题目描述
给定一棵有 $n$ 个节点的树,其中 $1$ 号点是根。每条边有重量 $w_i$ 和强度 $p_i$。
如果一条边的强度小于这条边深度较大的点的子树内所有边重量和,则这条边会断裂。你可以降低一些边的重量,且被降低重量的边会损失等量的强度。每条边的最终重量必须为正整数,强度必须为非负整数。询问至少要降低多少重量,或者输出 `-1` 表示这棵树无论如何都会断裂。
输入格式
第一行一个数 $n$,表示节点数量。
接下来 $n-1$ 行,每行四个整数 $x,y,w,p$ 表示 $x$ 是 $y$ 的父亲节点,这条边的重量为 $w$,强度为 $p$。
输出的树必须保证降低的重量和最小且没有边会断裂。
由 @流风之回雪 提供翻译
输出格式
如果不存在合法的方案,输出 `-1`。
如果存在方案,第一行一个正整数 $n$ 代表节点个数。接下来 $n-1$ 行,每行四个整数 $x,y,w,p$,表示意义与输入的树对应字母表示意义相同。
说明/提示
对于 $100\%$ 的数据,$1 \le n \le 2 \times 10^5$,$1 \le x,y \le n$,$0 \le p \le 10^9$,$1 \le w \le 10^9$。