編號優先的修課順序
Smallest-First Course Order・apcs-26-01
- APCS 高級
- DAG 上的 DP
- APCS 實作專題・Graph — DAG & Topo DP
時間限制 1 秒・記憶體 64 MB
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
題目敘述
社團的課程表上有 n 門課,編號為 1 到 n。有些課有先修關係:「u v」代表必須先修完第 u 門課,才能修第 v 門課。每門課恰好修一次,一次只修一門。
請找出一個安排順序,使所有限制都被滿足,而且在所有合法順序中字典序最小(把順序當成長度為 n 的數列,由左至右比較,第一個不同的位置上數字較小者較小)。若不存在任何合法順序,輸出 −1。
輸入格式
第一行有兩個整數 n 與 m,分別是點數與邊數。接下來 m 行,每行兩個整數 u 與 v,表示一條從 u 指向 v 的有向邊。
輸出格式
若有合法順序,輸出一行,包含 n 個以空白分隔的整數,即字典序最小的順序;否則輸出一個整數 −1。
限制
- 1 ≤ n ≤ 100
- 0 ≤ m ≤ 500
範例
範例 1
輸入
4 3
1 2
2 3
1 4輸出
1 2 3 4範例 2
輸入
2 0輸出
1 2說明
- 範例 1 中,1 必須在 2 與 4 之前,2 必須在 3 之前。
- 範例 2 沒有任何限制,直接由小到大排列即可。
送出程式要先用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。看題目不用登入。
卡住了可以到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。