[CCO2021] Travelling Merchant
题目描述
一个国家有 $n$ 个城市和 $m$ 条单向道路,一个旅行商在这些城市之间旅行。
第 $i$ 条道路从城市 $a_i$ 到城市 $b_i$,只有当他的资产不少于 $r_i$ 元才可以走这条道路,走过这条道路之后他的资产会增加 $p_i$ 元。
他希望自己可以永远不停的游走下去,于是他想知道从任意一个城市出发至少需要多少元初始资产。
输入输出格式
输入格式
第一行,两个整数 $n, m$;
接下来 $m$ 行,第 $i$ 行有四个整数 $a_i, b_i, r_i, p_i$。
输出格式
一行,$n$ 个整数,若第 $i$ 个城市无解,第 $i$ 个整数为 $-1$;否则,为至少需要的初始资产(单位为元)。
输入输出样例
输入样例 #1
5 5
3 1 4 0
2 1 3 0
1 3 1 1
3 2 3 1
4 2 0 2
输出样例 #1
2 3 3 1 -1
说明
#### 样例 #1 解释
以第 $2$ 座城市为例:从第 $2$ 座城市出发,初始资产 $3$ 元,则可以在第 $2, 1, 3$ 三座城市无限绕圈。
#### 数据范围
对于 $\frac{2}{7}$ 的数据,$2 \leq n, m \leq 2 \times 10^3$;
对于另 $\frac{15}{49}$ 的数据,$p_i = 0$;
对于 $100\%$ 的数据,$2 \leq n, m \leq 2 \times 10^5$,$1 \leq a_i, b_i \leq n$,$a_i \neq b_i$,$0 \leq r_i, p_i \leq 10^9$,**保证没有自环但可能有重边**。
#### 题目来源
[CCO2021](https://cemc.math.uwaterloo.ca/contests/computing/2021/index.html) D2T1