難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Balanced Path

作成者 mackerel38

テスター yukimy32

難易度(作成者設定) Lv.5

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

問題文

頂点数 NN 、辺数 MM の単純連結無向グラフが与えられる。頂点には 11 から NN までの番号が振られており、ii 番目の辺は頂点 uiu_i と頂点 viv_i を結んでいる。

このグラフから頂点 SS から始まるパスを削除することで、すべての連結成分の頂点数を ⌊N2⌋\left\lfloor{\dfrac{N}{2}}\right\rfloor 以下にすることができるか判定し、できるならばパスを求めよ。

厳密には、次の条件をすべて満たす頂点列 P=(P1,P2,…,PK)P=(P_1,P_2,\dots,P_K) が存在するか判定し、存在するなら一つ求めよ。

  • 1≤K≤N1\le K\le N
  • P1=SP_1=S
  • P1,P2,…,PKP_1,P_2,\dots,P_K は相異なる。
  • すべての 1≤i<K1\le i<K に対して、頂点 PiP_i と頂点 Pi+1P_{i+1} の間に辺が存在する。
  • グラフから頂点 P1,P2,…,PKP_1,P_2,\dots,P_K とそれらに接続する辺をすべて削除したとき、残ったグラフの各連結成分の頂点数は ⌊N/2⌋\lfloor N/2\rfloor 以下である。

制約

  • 入力はすべて整数である。
  • 1≤N≤2×1051 \le N \le 2 \times 10^5
  • 0≤M≤2×1050 \le M \le 2 \times 10^5
  • 1≤S≤N1 \le S \le N
  • 1≤ui,vi≤N1 \le u_i, v_i \le N
  • 与えられるグラフは単純かつ連結である。

入力

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

NN MM SS u1u_1 v1v_1 u2u_2 v2v_2 ⋮\vdots uMu_M vMv_M

出力

条件を満たす頂点列が存在しない場合、No を出力せよ。

存在する場合、以下の形式で出力せよ。

Yes KK P1P_1 P2P_2 …\dots PKP_K

条件を満たすパスが複数存在する場合、どれを出力してもよい。

サンプル

サンプル 1

入力

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

出力

Yes
4
1 2 3 5

頂点 1,2,3,51,2,3,5 を削除すると、残ったグラフの連結成分は {4,7,8}\{4,7,8\} と {6}\{6\} になる。いずれも頂点数は 44 以下である。

スペシャルジャッジ問題:提出の出力を検証コードで判定します。