G - Breaking Friends
解説を見る- 実行時間制限:3000 ms
- メモリ制限:1073741824 Bytes
- 配点:150 点
- ジャッジ:Batch
通常と異なる実行時間制限に注意してください。
問題
人の PCP 部員がいて、それぞれに から までの番号がついています。
を満たす について、部員 と部員 は友達です。
また、「知り合い」という関係も存在しています。「友達」や「知り合いの友達」は、全員知り合いで、そうでない人は知り合いではありません。
部員たちは 1 人以上で「グループ」をつくっています。全員が何らかのグループに所属しています。
グループのメンバーは、全員がほかのメンバーと互いに知り合いの関係にあり、また各部員は所属していないグループのメンバーは知りません。
回の「できごと」( )が発生するので、適切に対処してください。各「できごと」の内容は、次のうちのどれか一つです。
- 友達だった部員 と が絶交する。互いに友達ではなかったことになり、相手を介して知っていた「知り合い」は知らなかったことになる。これに伴って、グループは再構成される。(分裂することがある)
- 部員 と が知り合いなら 「
Yes」 , 知り合いでないなら 「No」 を出力する。 - 部員 の所属するグループのメンバーを全員出力する。このとき、部員の番号の小さい順に出力する必要がある。
- 部員 の所属するグループの人数を出力する。
BONUS!
上記だけでは 120 点ですが、つぎの「できごと」も処理した場合、満点(150点)が得られます。
- 部員 と が友達になる。知り合いも増える。これに伴って、グループは再編成される。なお、この二人は新たな友達ではなく絶交していたものが仲直りしているという可能性もある。
制約
- できごと
1と2と5について、 - できごと
3と4について、 - できごと
1について、- 発生前、 と は友達関係にある
- できごと
3について、- 発生回数は 80 回以下
- できごと
5について、- 発生回数は 3 回以下
- 発生前、 と は友達関係にはない
- 入力はすべて整数
小課題
- (30点) 、 、できごと
3、4、5は起こらない - (20点) 、 、できごと
4、5は起こらない - (70点) できごと
5は起こらない - (30点) できごと
5が起こる
入力
各 は、次のように与えられる。
出力
できごと 2 3 4 の結果を改行区切りで出力してください。
2:YesまたはNoを結果に応じて出力3: と同じグループに所属する部員の番号を昇順に空白区切りで出力4: と同じグループに所属する部員の人数を出力
入出力例
入力例 1
4 4 1 2 1 3 1 4 2 4 5 3 1 1 1 2 2 1 2 1 1 4 3 1
出力例 1
1 2 3 4 Yes 1 3
入力例 2
8 4 1 2 2 3 2 4 7 8 15 2 1 4 3 3 1 7 8 4 7 5 2 5 3 3 1 2 4 3 3 1 2 3 3 1 5 2 3 5 3 5 3 4 1 2 3 3 1
出力例 2
Yes 1 2 3 4 1 1 2 3 4 5 1 2 3 5 1 2 5 4 1 2 3 5