Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 100 - 選秀

Problem Statistics

Solved Member: 14  Submission: 143  User Tried: 20

Statement:

為了鞏固新國家的地位,兔王決定開始對外徵招人才。

如同一般的選秀比賽,這個選秀是由許多場雙人的比賽所組合而成的,每場比賽一定會產生一個勝利者,而失敗者將慘遭淘汰。
參加的人數一共有 N 個人,由 1 編號到 N ,兔王希望從 N 個人當中選出一個佼佼者,也就是冠軍來擔任重責大任。
不難想像,經過 N-1 次比賽之後將會有冠軍產生。

身為一位專業的比賽評論家,你精確地掌握了許多參賽者的數據。
更確切的說,你有許多筆記錄,每一筆記錄記錄著 (A,B) ,代表 A,B 兩人對戰時 A 處於絕對優勢,在正式比賽中 A 必定勝 B。
若 A 與 B 之間沒有資料存在,則正式對戰中兩人皆有可能獲得勝利。

在不知道比賽順序以及實際比賽情形的情況下,你想知道,比賽究竟有哪些人有可能獲得冠軍。
獲得冠軍有可能是「直接」的勝利,或者是「間接」勝利(例如 A勝B,B勝C,但是A不一定要打贏C也可能拿到冠軍)。

Input:Output:

第 1 行有一個正整數 N(1 ≤ N ≤ 100000), 代表參加比賽的人數。
第 2 行之後的 N 行,第 i+1 行最前面有個數字 Ni ,代表第 i 人會勝的人數;接著接著 Ni 個數字,代表第 i 個人必定會贏的人的編號。
比賽的總場數必定 ≤ 1000000。
輸出請輸出 1 行,第 1 個數字 K 代表有多少人有可能獲得冠軍,後面請「由小到大」輸出可能獲得冠軍的參賽者編號。
兩個數字之間請用一個空白字元分隔。

Sample Input:Sample Output:

4
2 2 3
0
1 2
1 2
3 1 3 4

HINT:


如上圖,1,3,4皆有可能獲得冠軍。
箭頭連接的代表必勝的人。

Source:

POI 11 Stage 2

Problem Setter

Testdata:

TestTimeMemoryScore
01000ms32768kb
1-ocen1000ms32768kb
1-11000ms32768kb8
1-21000ms32768kb
2-ocen1000ms32768kb
2-11000ms32768kb8
2-21000ms32768kb
3-ocen1000ms32768kb
3-11000ms32768kb8
3-21000ms32768kb
4-ocen3000ms32768kb
41000ms32768kb8
5-11000ms32768kb8
5-21000ms32768kb
61000ms32768kb8
71000ms32768kb8
81000ms32768kb8
93000ms32768kb9
103000ms32768kb9
113000ms32768kb9
123000ms32768kb9