問題一覧 > 通常問題

No.1553 Lovely City

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 67
作問者 : first_vil / テスター : 沙耶花
9 ProblemId : 6435 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-09-20 14:41:39

問題文

N 頂点 0 辺のグラフがあります。このグラフにいくつかの有向辺を追加し、以下の条件が満たされるようにしたいです。

  • 全ての整数 i (1iM) について、頂点 Ui から頂点 Vi への有向パスが存在する。

この条件が満たされるような有向辺の追加方法のうち、追加する辺数が最小であるようなものを一つ示してください。

入力

N M
U1 V1
U2 V2

UM VM
  • 入力はすべて整数
  • 2N2×105
  • 1M2×105
  • 1Ui,ViN
  • UiVi
  • ij であれば (Ui,Vi)(Uj,Vj)

出力

1 行目には追加する辺数 K を、i+1 (1iK) 行目には i 番目の有向辺を頂点 Ai から頂点 Bi に張るとして AiBi を空白区切りで出力し、最後に改行してください。

追加する辺数が最小であるような有向辺の追加方法が複数ある場合はどれを出力しても構いません。ただし 1Ai,BiN が満たされていなければいけません。

K
A1 B1
A2 B2

AK BK

サンプル

サンプル1
入力
3 2
1 2
1 3
出力
2
1 2
1 3

頂点 1 から頂点 2 へ、頂点 1 から頂点 3 への有向パスがそれぞれ存在するので、この出力は条件を満たしています。 1 本以下の有向辺で条件を満たすことはできないので、追加する辺数の最小値は 2 です。

サンプル2
入力
8 10
4 5
3 4
6 8
5 7
2 4
1 6
3 6
1 8
2 8
1 2
出力
7
3 1
1 6
6 2
2 8
8 4
4 5
5 7

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。