atcoder#ABC232C. [ABC232C] Graph Isomorphism

[ABC232C] Graph Isomorphism

配点 : 300300

問題文

高橋君と青木君は、それぞれ NN 個のボールに MM 本のひもを取り付けたおもちゃを持っています。

高橋君のおもちゃにおいて、ボールには 1,,N1, \dots, N と番号が付けられており、i(1iM)i \, (1 \leq i \leq M) 本目のひもはボール AiA_i とボール BiB_i を結んでいます。

青木君のおもちゃにおいても同様に、ボールには 1,,N1, \dots, N と番号が付けられており、i(1iM)i \, (1 \leq i \leq M) 本目のひもはボール CiC_i とボール DiD_i を結んでいます。

それぞれのおもちゃにおいて、同一のボールを結ぶようなひもは存在せず、22 つのボールを 22 本以上の異なるひもが結んでいることはありません。

すぬけ君は、22 人のおもちゃが同じ形であるかどうか気になっています。 ここで、22 人のおもちゃが同じ形であるとは、以下の条件を満たす数列 PP が存在することをいいます。

  • PP(1,,N)(1, \dots, N) を並べ替えて得られる。
  • 任意の 11 以上 NN 以下の整数 i,ji, j に対し、以下が成り立つ。- 高橋君のおもちゃにおいてボール i,ji, j がひもで繋がれていることと、青木君のおもちゃにおいてボール Pi,PjP_i, P_j がひもで繋がれていることは同値である。

22 人のおもちゃが同じ形であるなら Yes、そうでないなら No と出力してください。

制約

  • 1N81 \leq N \leq 8
  • 0MN(N1)20 \leq M \leq \frac{N(N - 1)}{2}
  • 1Ai<BiN(1iM)1 \leq A_i \lt B_i \leq N \, (1 \leq i \leq M)
  • (Ai,Bi)(Aj,Bj)(ij)(A_i, B_i) \neq (A_j, B_j) \, (i \neq j)
  • 1Ci<DiN(1iM)1 \leq C_i \lt D_i \leq N \, (1 \leq i \leq M)
  • (Ci,Di)(Cj,Dj)(ij)(C_i, D_i) \neq (C_j, D_j) \, (i \neq j)
  • 入力は全て整数である。

入力

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

NN MM

A1A_1 B1B_1

\vdots

AMA_M BMB_M

C1C_1 D1D_1

\vdots

CMC_M DMD_M

出力

22 人のおもちゃが同じ形であるなら Yes、そうでないなら No と出力せよ。

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

高橋君のおもちゃは下図の左側のような形をしており、青木君のおもちゃは下図の右側のような形をしています。

yes1

次の図から、22 人のおもちゃが同じ形であることがわかります。例えば P=(3,2,1,4)P = (3, 2, 1, 4) とすると問題文中の条件を満たします。

yes2

5 6
1 2
1 3
1 4
3 4
3 5
4 5
1 2
1 3
1 4
1 5
3 5
4 5
No

22 人のおもちゃは同じ形ではありません。

no

8 0
Yes