atcoder#ABC239G. [ABC239G] Builder Takahashi

[ABC239G] Builder Takahashi

Score : 600600 points

Problem Statement

We have a simple connected undirected graph with NN vertices and MM edges. The vertices are numbered as Vertex 11, Vertex 22, \dots, Vertex NN. The edges are numbered as Edge 11, Edge 22, \dots, Edge MM. Edge ii connects Vertex aia_i and Vertex bib_i bidirectionally. There is no edge that directly connects Vertex 11 and Vertex NN. Each vertex is either empty or occupied by a wall. Initially, every vertex is empty.

Aoki is going to travel from Vertex 11 to Vertex NN along the edges on the graph. However, Aoki is not allowed to move to a vertex occupied by a wall.

Takahashi has decided to choose some of the vertices to build walls on, so that Aoki cannot travel to Vertex NN no matter which route he takes. Building a wall on Vertex ii costs Takahashi cic_i yen (the currency of Japan). He cannot build a wall on Vertex 1 and Vertex N.

How many yens is required for Takahashi to build walls so that the conditions is satisfied? Also, print the way of building walls to achieve the minimum cost.

Constraints

  • 3N1003 \leq N \leq 100
  • N1MN(N1)21N - 1 \leq M \leq \frac{N(N-1)}{2} - 1
  • 1ai<biN1 \leq a_i \lt b_i \leq N (1iM)(1 \leq i \leq M)
  • (ai,bi)(1,N)(a_i, b_i) \neq (1, N)
  • The given graph is simple and connected.
  • 1ci1091 \leq c_{i} \leq 10^9 (2iN1)(2 \leq i \leq N-1)
  • c1=cN=0c_1 = c_N = 0
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN MM

a1a_1 b1b_1

a2a_2 b2b_2

\vdots

aMa_M bMb_M

c1c_1 c2c_2 \dots cNc_N

Output

Print in the following format. Here, C,kC,k, and pip_i are defined as follows.

  • CC is the cost that Takahashi will pay
  • kk is the number of vertices for Takahashi to build walls on
  • (p1,p2,,pk)(p_1,p_2,\dots,p_k) is a sequence of vertices on which Takahashi will build walls

CC

kk

p1p_1 p2p_2 \dots pkp_k

If there are multiple ways to build walls to satisfy the conditions with the minimum cost, print any of them.

5 5
1 2
2 3
3 5
2 4
4 5
0 8 3 4 0
7
2
3 4

If Takahashi builds walls on Vertex 33 and Vertex 44, paying 3+4=73 + 4 = 7 yen, Aoki is unable to travel from Vertex 11 to Vertex 55. There is no way to satisfy the condition with less cost, so 77 yen is the answer.

3 2
1 2
2 3
0 1 0
1
1
2
5 9
1 2
1 3
1 4
2 3
2 4
2 5
3 4
3 5
4 5
0 1000000000 1000000000 1000000000 0
3000000000
3
2 3 4