#gigacode2019g. [gigacode_2019_g]ギガ国の道路事情
[gigacode_2019_g]ギガ国の道路事情
配点: 点
問題文
ギガ国には 個の都市があり,それぞれ と番号が付けられています.
いくつかの都市は道路でつながれています.具体的には, 本の道路があり, 本目の道路は都市 と を双方向に結んでいます.また,いくつかの道路だけを通ることによって,どの都市からどの都市へも行けるようになっています.
ここで, を,「都市 と の距離」,つまり「都市 から都市 に道路だけを使って行くときに使う,最小の道路の本数」とします.
そのとき,すべての異なる 都市の組 に対しての距離 の合計を求めて下さい.
制約
- どのような の組においても,都市 と都市 を直接結ぶ道路は高々 1 つしか存在しない.
- どの都市からどの都市へも,道路を辿って行くことができる.
- 入力はすべて整数
部分点
この問題はいくつかの小課題に分けられ,その小課題のすべてのテストケースに正解した場合に「この小課題に正解した」とみなされます.
提出したソースコードの得点は,正解した小課題の点数の合計となります.
- (9 点)
- (7 点)
- (12 点) を満たす.
- (13 点) を満たす.
- (28 点) を満たす.また, について, を満たす.
- (22 点) を満たす.
- (9 点) 追加の制約はない.
入力
入力は以下の形式で標準入力から与えられます.
: :
出力
全ての都市 間の距離 の合計を出力してください.
注意
この問題は入出力のサイズがやや大きいため,高速な入出力(C++ の場合 scanf/printf など)を用いることが推奨されます.
入力例 1
4 3
1 2
2 3
3 4
出力例 1
10
ギガ国は,以下のような道路網を持ちます.
この道路網において,$d(1, 2) = 1, d(1, 3) = 2, d(1, 4) = 3, d(2, 3) = 1, d(2, 4) = 2, d(3, 4) = 1$ より,答えは となります.
入力例 2
4 6
1 2
1 3
1 4
2 3
2 4
3 4
出力例 2
6
ギガ国は,以下のような道路網を持ちます.
この道路網において,すべての都市間を距離 で移動できるので,答えは となります.
入力例 3
9 12
1 2
2 3
4 5
5 6
7 8
8 9
1 4
4 7
2 5
5 8
3 6
6 9
出力例 3
72