D - 村の合併
Ceylon
2
s
1024
MB
400
点
問題文
Cafe 県にはいくつかの村があります。それぞれの村は $10$ 文字以下の文字列で表されます。
村と村を結ぶ道が $N$ 個あり、$i$ ($1 \leq i \leq N$) 番目の道は村 $A_i$ と村 $B_i$ を結んでいます。
また、すべての村には、他の村と繋がる道が $1$ つ以上存在します。
村が多すぎて困った Cafe 県の ecto 知事は、互いに行き来のできる村を合併して町を作ることになりました。
合併したあと、Cafe 県にはいくつの町があるかを求めてください。
また、それぞれの町はいくつの村が合併してできたものであるかを求め、それを昇順で出力してください。
制約
- $1 \le N \le 10^4$
- $A_i$ と $B_i$ ($1 \leq i \leq N$) は英数字からなる $10$ 文字以下のそれぞれ異なる文字列である。
入力
入力は以下の形式で標準入力から与えられる。
$N$
$A_1\ B_1$
$\vdots$
$A_N\ B_N$
出力
$1$ 行目には、町がいくつあるか出力せよ。
$2$ 行目には、それぞれの町がいくつの村が合併してできたものであるかを昇順・空白区切りで出力せよ。
入力例 1
5
1 2
2 4
4 1
5 6
7 10
出力例 1
3
2 2 3
Cafe 県には以下の $3$ つの町が存在します。
- 村
5
,村6
が合併した町 - 村
7
,村10
が合併した町 - 村
1
,村2
,村4
が合併した町
入力例 2
2
10000000 1
99999999 89999
出力例 2
2
2 2
入力例 3
2
a b
b c
出力例 3
1
3
村の名前には英字が含まれる場合があります。