#CF2239E. 世界的尽头 / E. The end of this world,
世界的尽头 / E. The end of this world,
E. The end of this world,
Source: Codeforces 2239E
Contest: Codeforces Round 1105 (Div. 1)
Time limit: 5 seconds
Memory limit: 1024 megabytes
Statement
... and the girl who crossed the moon's oceans.
— Frums
You are given an undirected graph consisting of vertices and edges. The -th vertex has an associated value . The -th edge connects vertices and and has two properties: a capacity and a floor . It is guaranteed that for all edges.
You want to start a walk from a vertex . Before the walk begins, you must choose an arbitrary non-negative integer as your initial state parameter.
If you are currently at vertex with state , you can traverse an edge connecting and if and only if . Upon traversing this edge and arriving at vertex , the state parameter updates to .
Let the walk end at some vertex . You must traverse at least one edge. The score of such a walk is defined as . Note that we are interested in the sum of the final vertex value and the initial state parameter, not the final state parameter.
For each starting vertex from to , calculate the maximum possible score achievable. If it is impossible to traverse any edge starting from some , output instead.
Input
Each test contains multiple test cases. The first line contains the number of test cases (). The description of the test cases follows.
The first line of each test case contains two integers and () — the number of vertices and the number of edges.
The second line of each test case contains integers $\mathrm{val}_1, \mathrm{val}_2, \ldots, \mathrm{val}_n$ () — the values of the vertices.
The next lines describe the edges. The -th line contains four integers (; ) — the endpoints and properties of the -th edge.
The graph is not guaranteed to be connected and may contain multiple edges.
It is guaranteed that the sum of and the sum of over all test cases do not exceed .
Output
For each test case, output integers separated by spaces. The -th integer should be the maximum score achievable starting from vertex , or if no edge can be traversed.
Note
In the first test case, here are the optimal values and paths for each starting node:
- For node , it is optimal to use . Then, take the path from node to node . is updated to . The path ends, and the score is .
- For node , it is optimal to use . Then, take the path from node to node , then from node to node . The score is .
- For node , it is optimal to use . Then, take the path from node to node . The score is .
In the third test case, since there are no edges incident to either node, the answer is for both.
Examples
9
3 2
10 20 5
1 2 5 2
2 3 4 3
2 1
100 10
1 2 10 5
2 0
50 50
1 0
114514
4 1
1 2 3 4
3 4 2 1
3 2
1 4 1
1 3 4 1
1 2 2 1
3 2
10 3 2
2 3 4 4
2 1 3 2
3 2
5 2 2
3 2 4 4
1 3 5 5
5 9
857147200 381798978 633421584 956726892 315899900
2 1 883474754 795831571
2 4 657281748 375466725
1 3 666641114 444218918
2 3 901861650 790895313
3 2 613790652 96876004
2 5 852725279 216601090
3 4 500240642 193633892
2 5 210434355 130646156
3 2 457018372 279005896
25 25 24
110 110
-1 -1
-1
-1 -1 6 6
6 6 6
13 13 7
10 9 10
1740621954 1740621954 1740621954 1614008640 1709872479