D - 8 Puzzle on Graph Editorial /

Time Limit: 4 sec / Memory Limit: 1024 MB

配点 : 400400

問題文

高橋君は道端であるパズルを拾いました。
このパズルは、99 個の頂点と MM 本の辺からなる無向グラフ、および、88 つのコマで構成されます。

グラフの 99 つの頂点はそれぞれ頂点 11、頂点 22\ldots、頂点 99 と呼ばれ、 i=1,2,,Mi = 1, 2, \ldots, M について、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいます。
88 つのコマはそれぞれコマ 11、コマ 22\ldots、コマ 88 と呼ばれ、 j=1,2,,8j = 1, 2, \ldots, 8 について、コマ jj は頂点 pjp_j に置かれています。 ここで、すべてのコマはそれぞれ異なる頂点に置かれていることが保証されます。 コマが置かれていない「空の頂点」がただ一つ存在することに注意してください。

高橋君はこのパズルに対して下記の操作を好きな回数( 00 回でもよい)だけ行うことができます。

空の頂点に隣接する頂点に置かれたコマを 11 つ選び、選んだコマを空の頂点に移動する。

高橋君は上記の操作を繰り返して、このパズルを「完成」させようとしています。 パズルは、下記の状態を満たしたときに完成となります。

j=1,2,,8j = 1, 2, \ldots, 8 について、コマ jj は 頂点 jj に置かれている。

高橋君がパズルを完成させることが可能かどうかを判定し、可能な場合はそのために必要な操作回数の最小値を出力してください。

制約

  • 0M360 \leq M \leq 36
  • 1ui,vi91 \leq u_i, v_i \leq 9
  • 与えられるグラフは多重辺、自己ループを持たない
  • 1pj91 \leq p_j \leq 9
  • jjpjpjj \neq j' \Rightarrow p_j \neq p_{j'}
  • 入力はすべて整数

入力

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

MM
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uMu_M vMv_M
p1p_1 p2p_2 \ldots p8p_8

出力

高橋君がパズルを完成させることが可能な場合は、そのために必要な操作回数の最小値を出力せよ。 高橋君がパズルを完成させることが不可能な場合は、1-1 を出力せよ。


入力例 1Copy

Copy
5
1 2
1 3
1 9
2 9
3 9
3 9 2 4 5 6 7 8

出力例 1Copy

Copy
5

下記の手順によって、55 回の操作でパズルを完成させることができます。

  1. コマ 22 を頂点 99 から頂点 11 に移動する。
  2. コマ 33 を頂点 22 から頂点 99 に移動する。
  3. コマ 22 を頂点 11 から頂点 22 に移動する。
  4. コマ 11 を頂点 33 から頂点 11 に移動する。
  5. コマ 33 を頂点 99 から頂点 33 に移動する。

一方、55 回未満の操作でパズルを完成させることはできません。よって、55 を出力します。
与えられるグラフは連結とは限らないことに注意してください。


入力例 2Copy

Copy
5
1 2
1 3
1 9
2 9
3 9
1 2 3 4 5 6 7 8

出力例 2Copy

Copy
0

パズルは初めから完成しています。よって、完成させるために必要な操作回数の最小値は 00 回です。


入力例 3Copy

Copy
12
8 5
9 6
4 5
4 1
2 5
8 9
2 1
3 6
8 7
6 5
7 4
2 3
1 2 3 4 5 6 8 7

出力例 3Copy

Copy
-1

操作の繰り返しによってパズルを完成させることができないので、1-1 を出力します。


入力例 4Copy

Copy
12
6 5
5 4
4 1
4 7
8 5
2 1
2 5
6 9
3 6
9 8
8 7
3 2
2 3 4 6 1 9 7 8

出力例 4Copy

Copy
16

Score : 400400 points

Problem Statement

Takahashi found a puzzle along some road.
It is composed of an undirected graph with nine vertices and MM edges, and eight pieces.

The nine vertices of the graph are called Vertex 11, Vertex 22, \ldots, Vertex 99. For each i=1,2,,Mi = 1, 2, \ldots, M, the ii-th edge connects Vertex uiu_i and Vertex viv_i.
The eight pieces are called Piece 11, Piece 22, \ldots, Piece 88. For each j=1,2,,8j = 1, 2, \ldots, 8, Piece jj is on Vertex pjp_j.
Here, it is guaranteed that all pieces are on distinct vertices. Note that there is exactly one empty vertex without a piece.

Takahashi can do the following operation on the puzzle any number of times (possibly zero).

Choose a piece on a vertex adjacent to the empty vertex, and move it to the empty vertex.

By repeating this operation, he aims to complete the puzzle. The puzzle is considered complete when the following holds.

  • For each j=1,2,,8j = 1, 2, \ldots, 8, Piece jj is on Vertex jj.

Determine whether it is possible for Takahashi to complete the puzzle. If it is possible, find the minimum number of operations needed to do so.

Constraints

  • 0M360 \leq M \leq 36
  • 1ui,vi91 \leq u_i, v_i \leq 9
  • The given graph has no multi-edges or self-loops.
  • 1pj91 \leq p_j \leq 9
  • jjpjpjj \neq j' \Rightarrow p_j \neq p_{j'}
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

MM
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uMu_M vMv_M
p1p_1 p2p_2 \ldots p8p_8

Output

If it is possible for Takahashi to complete the puzzle, find the minimum number of operations needed to do so. Otherwise, print 1-1.


Sample Input 1Copy

Copy
5
1 2
1 3
1 9
2 9
3 9
3 9 2 4 5 6 7 8

Sample Output 1Copy

Copy
5

The following procedure completes the puzzle in five operations.

  1. Move Piece 22 from Vertex 99 to Vertex 11.
  2. Move Piece 33 from Vertex 22 to Vertex 99.
  3. Move Piece 22 from Vertex 11 to Vertex 22.
  4. Move Piece 11 from Vertex 33 to Vertex 11.
  5. Move Piece 33 from Vertex 99 to Vertex 33.

On the other hand, it is impossible to complete the puzzle in less than five operations. Thus, we should print 55.
Note that the given graph may not be connected.


Sample Input 2Copy

Copy
5
1 2
1 3
1 9
2 9
3 9
1 2 3 4 5 6 7 8

Sample Output 2Copy

Copy
0

The puzzle is already complete from the beginning. Thus, the minimum number of operations needed to complete the puzzle is 00.


Sample Input 3Copy

Copy
12
8 5
9 6
4 5
4 1
2 5
8 9
2 1
3 6
8 7
6 5
7 4
2 3
1 2 3 4 5 6 8 7

Sample Output 3Copy

Copy
-1

No sequence of operations can complete the puzzle, so we should print 1-1.


Sample Input 4Copy

Copy
12
6 5
5 4
4 1
4 7
8 5
2 1
2 5
6 9
3 6
9 8
8 7
3 2
2 3 4 6 1 9 7 8

Sample Output 4Copy

Copy
16


2025-04-14 (Mon)
12:53:38 +00:00