

Time Limit: 4 sec / Memory Limit: 1024 MB
配点 : 点
問題文
高橋君は道端であるパズルを拾いました。
このパズルは、 個の頂点と 本の辺からなる無向グラフ、および、 つのコマで構成されます。
グラフの つの頂点はそれぞれ頂点 、頂点 、、頂点 と呼ばれ、
について、 番目の辺は頂点 と頂点 を結んでいます。
つのコマはそれぞれコマ 、コマ 、、コマ と呼ばれ、
について、コマ は頂点 に置かれています。
ここで、すべてのコマはそれぞれ異なる頂点に置かれていることが保証されます。
コマが置かれていない「空の頂点」がただ一つ存在することに注意してください。
高橋君はこのパズルに対して下記の操作を好きな回数( 回でもよい)だけ行うことができます。
空の頂点に隣接する頂点に置かれたコマを つ選び、選んだコマを空の頂点に移動する。
高橋君は上記の操作を繰り返して、このパズルを「完成」させようとしています。 パズルは、下記の状態を満たしたときに完成となります。
について、コマ は 頂点 に置かれている。
高橋君がパズルを完成させることが可能かどうかを判定し、可能な場合はそのために必要な操作回数の最小値を出力してください。
制約
- 与えられるグラフは多重辺、自己ループを持たない
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
出力
高橋君がパズルを完成させることが可能な場合は、そのために必要な操作回数の最小値を出力せよ。 高橋君がパズルを完成させることが不可能な場合は、 を出力せよ。
入力例 1Copy
5 1 2 1 3 1 9 2 9 3 9 3 9 2 4 5 6 7 8
出力例 1Copy
5
下記の手順によって、 回の操作でパズルを完成させることができます。
- コマ を頂点 から頂点 に移動する。
- コマ を頂点 から頂点 に移動する。
- コマ を頂点 から頂点 に移動する。
- コマ を頂点 から頂点 に移動する。
- コマ を頂点 から頂点 に移動する。
一方、 回未満の操作でパズルを完成させることはできません。よって、 を出力します。
与えられるグラフは連結とは限らないことに注意してください。
入力例 2Copy
5 1 2 1 3 1 9 2 9 3 9 1 2 3 4 5 6 7 8
出力例 2Copy
0
パズルは初めから完成しています。よって、完成させるために必要な操作回数の最小値は 回です。
入力例 3Copy
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
-1
操作の繰り返しによってパズルを完成させることができないので、 を出力します。
入力例 4Copy
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
16
Score : points
Problem Statement
Takahashi found a puzzle along some road.
It is composed of an undirected graph with nine vertices and edges, and eight pieces.
The nine vertices of the graph are called Vertex , Vertex , , Vertex . For each , the -th edge connects Vertex and Vertex .
The eight pieces are called Piece , Piece , , Piece .
For each , Piece is on Vertex .
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 , Piece is on Vertex .
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
- The given graph has no multi-edges or self-loops.
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
Output
If it is possible for Takahashi to complete the puzzle, find the minimum number of operations needed to do so. Otherwise, print .
Sample Input 1Copy
5 1 2 1 3 1 9 2 9 3 9 3 9 2 4 5 6 7 8
Sample Output 1Copy
5
The following procedure completes the puzzle in five operations.
- Move Piece from Vertex to Vertex .
- Move Piece from Vertex to Vertex .
- Move Piece from Vertex to Vertex .
- Move Piece from Vertex to Vertex .
- Move Piece from Vertex to Vertex .
On the other hand, it is impossible to complete the puzzle in less than five operations. Thus, we should print .
Note that the given graph may not be connected.
Sample Input 2Copy
5 1 2 1 3 1 9 2 9 3 9 1 2 3 4 5 6 7 8
Sample Output 2Copy
0
The puzzle is already complete from the beginning. Thus, the minimum number of operations needed to complete the puzzle is .
Sample Input 3Copy
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
-1
No sequence of operations can complete the puzzle, so we should print .
Sample Input 4Copy
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
16