Lập lịch ưu tiên từ điển

Xem dưới dạng PDF

Gửi bài giải


Điểm: 20
Giới hạn thời gian: 1.5s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

An có \(N\) nhiệm vụ cần hoàn thành (được đánh số từ \(1\) đến \(N\)). Có \(M\) ràng buộc dạng nhiệm vụ \(u\) phải làm trước \(v\).

Để lập kế hoạch chi tiết khoa học nhất, trong số các trình tự làm việc hợp lệ, An muốn chọn trình tự có thứ tự từ điển nhỏ nhất.

Định dạng đầu vào

  • Dòng đầu chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 10^5\), \(0 \le M \le 2 \cdot 10^5\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) (\(1 \le u, v \le N\)) mô tả nhiệm vụ \(u\) làm trước nhiệm vụ \(v\).

Định dạng đầu ra

  • Thứ tự thực hiện các nhiệm vụ có thứ tự từ điển nhỏ nhất. Nếu không thể hoàn thành toàn bộ, in ra \(-1\).

Ràng buộc

Subtask Tỉ lệ điểm Ràng buộc
1 40% \(N \le 1000\), \(M \le 2000\)
2 60% Không có ràng buộc gì thêm

Ví dụ

Input:

4 3
2 4
1 4
3 2

Output:

1 3 2 4

(Giải thích ví dụ: Cả hai thứ tự [3, 1, 2, 4] và [1, 3, 2, 4] đều hợp lệ, nhưng [1, 3, 2, 4] có thứ tự từ điển nhỏ nhất).


Nhận xét

Không có ý kiến tại thời điểm này.