atcoder#ABC260F. [ABC260F] Find 4-cycle

[ABC260F] Find 4-cycle

配点 : 500500

問題文

S+TS+T 頂点 MM 辺の単純無向グラフ GG があります。頂点には 11 から S+TS+T の番号が、辺には 11 から MM の番号が割り振られています。辺 ii は頂点 uiu_i と頂点 viv_i を結んでいます。 また、頂点集合 V1={1,2,,S}V_1 = \lbrace 1, 2,\dots, S\rbrace および V2={S+1,S+2,,S+T}V_2 = \lbrace S+1, S+2, \dots, S+T \rbrace はともに独立集合です。

長さ 44 のサイクルを 4-cycle と呼びます。 GG が 4-cycle を含む場合、4-cycle をどれか 1 つ選び、選んだサイクルに含まれる頂点を出力してください。頂点を出力する順番は自由です。 GG が 4-cycle を含まない場合、 -1 を出力してください。

独立集合とは?

グラフ GG の独立集合とは、GG に含まれるいくつかの頂点からなる集合 VV' であって、VV' に含まれる任意の 22 つの頂点の間に辺がないものを言います。

制約

  • 2S3×1052 \leq S \leq 3 \times 10^5
  • 2T30002 \leq T \leq 3000
  • 4Mmin(S×T,3×105)4 \leq M \leq \min(S \times T,3 \times 10^5)
  • 1uiS1 \leq u_i \leq S
  • S+1viS+TS + 1 \leq v_i \leq S + T
  • iji \neq j ならば (ui,vi)(uj,vj)(u_i, v_i) \neq (u_j, v_j)
  • 入力される値はすべて整数

入力

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

SS TT MM

u1u_1 v1v_1

u2u_2 v2v_2

\vdots

uMu_M vMv_M

出力

GG が 4-cycle を含む場合は、任意の 4-cycle を 1 つ選び、選んだサイクルに含まれている相異なる 44 個の頂点の番号を出力せよ。(頂点の順番は問わない。) GG が 4-cycle を含まない場合は -1 を出力せよ。

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

頂点 1144442222555511 の間に辺があるので 頂点 1,2,4,51,2,4,5 は 4-cycle をなします。よって 1,2,4,51, 2, 4, 5 を出力すればよいです。 頂点を出力する順番は自由で、出力例のほかにも例えば 2 5 1 4 のような出力も正答となります。

3 2 4
1 4
1 5
2 5
3 5
-1

GG が 4-cycle を含まない入力もあります。

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