CSES 1757 - Course Schedule II
1.0s 512M你想修完 \(n\) 門課,這些課之間有形式為「課程 \(a\) 必須在課程 \(b\) 之前完成」的先修限制。
你想要盡可能早完成課程 \(1\)。如果有好幾種做法都能做到,那麼你接著想盡可能早完成課程 \(2\),依此類推。
你的任務是決定完成這些課程的順序。
輸入格式
第一行有兩個整數 \(n\) 與 \(m\):課程數量與限制數量。課程編號為 \(1,2,\dots,n\)。
接下來有 \(m\) 行描述限制。每行有兩個整數 \(a\) 與 \(b\):課程 \(a\) 必須在課程 \(b\) 之前完成。
你可以假設至少存在一種合法的修課順序。
輸出格式
輸出一行,包含 \(n\) 個整數:完成課程的順序。
範例輸入 1
4 2
2 1
2 3
範例輸出 1
2 1 3 4
限制
- \(1 \le n \le 10^5\)
- \(1 \le m \le 2 \cdot 10^5\)
- \(1 \le a,b \le n\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入