F - Max of Sum of Reachable Min Editorial /

Time Limit: 4 sec / Memory Limit: 1024 MiB

配点 : 1200

問題文

1 から N までの番号がついた N 頂点からなる DAG が与えられます. 辺は M 本あり,i 番目の辺は頂点 U_i から頂点 V_i に向かう辺です. ここで,U_i<V_i が保証されます. 各頂点には整数が書かれており,頂点 i には整数 A_i が書かれています.

頂点の部分集合 s に対し,f(s) を以下のように定めます.

  • f(s)=\sum_{v \in s} \min\{A_u\ |\ u \in s かつ DAG において頂点 u から頂点 v へ移動できる \}

各整数 K=1,2,\cdots,N について,以下の問題に答えてください.

頂点集合 \{1,2,\cdots,N\}K 個の (空でもよい) 部分集合に分解し,それらを X_1,X_2,\cdots,X_K とおきます. 分解の際,各頂点がちょうど 1 つの部分集合に含まれるようにします. \sum_{1 \leq i \leq K}f(X_i) としてありうる最大値を求めてください.

制約

  • 1 \leq N \leq 80
  • 0 \leq M \leq 160
  • 1 \leq A_i \leq 80
  • 1 \leq U_i < V_i \leq N
  • (U_i,V_i) \neq (U_j,V_j) (i \neq j)
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる.

N M
A_1 A_2 \cdots A_N
U_1 V_1
U_2 V_2
\vdots
U_M V_M

出力

K=1,2,\cdots,N に対する答えをこの順に出力せよ.


入力例 1

4 4
1 2 3 4
1 2
1 3
2 4
3 4

出力例 1

4 8 10 10

K に対する最適解(の一例)は以下のとおりです.

  • K=1 : X_1=\{1,2,3,4\}
  • K=2 : X_1=\{1\},X_2=\{2,3,4\}
  • K=3 : X_1=\{1\},X_2=\{2,3\},X_3=\{4\}
  • K=4 : X_1=\{1\},X_2=\{2\},X_3=\{3\},X_4=\{4\}

入力例 2

10 9
22 7 20 26 1 11 7 1 15 10
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

出力例 2

49 104 120 120 120 120 120 120 120 120

入力例 3

15 13
20 12 14 20 22 20 26 34 40 42 44 60 45 69 73
1 14
2 5
2 8
2 9
2 12
2 15
4 7
6 12
7 9
8 15
10 15
11 12
13 14

出力例 3

317 513 541 541 541 541 541 541 541 541 541 541 541 541 541

入力例 4

20 31
54 12 12 26 7 6 38 51 29 52 70 49 67 65 80 67 54 77 74 73
1 2
2 3
3 4
1 5
2 6
5 6
3 7
6 7
4 8
7 8
5 9
6 10
9 10
7 11
10 11
8 12
11 12
9 13
10 14
13 14
11 15
14 15
12 16
15 16
13 17
14 18
17 18
15 19
18 19
16 20
19 20

出力例 4

190 749 872 935 961 963 963 963 963 963 963 963 963 963 963 963 963 963 963 963