DHBB 2023 - CTP - 10 - Đánh dấu đồ thị

Xem dạng PDF

Gửi bài giải

Điểm: 20,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho một đồ thị có hướng không chu trình (DAG) gồm ~n~ đỉnh, ~m~ cạnh. Đồ thị không có khuyên hay nhiều cạnh nối cùng một cặp đỉnh, tuy nhiên có thể không liên thông.

Nhiệm vụ của bạn là gán giá trị cho các đỉnh, từ đây gọi giá trị của đỉnh ~i~ là ~A_i~, sao cho:

  • Các giá trị này tạo thành một hoán vị có độ dài ~n~, mỗi số từ ~1~ đến ~n~ xuất hiện đúng một lần trong dãy;

  • Nếu tồn tại một cạnh có hướng nối từ ~u~ tới ~v~ thì ~A_u<A_v~;</p>

  • Nếu tồn tại nhiều cách sắp xếp thì chọn dãy ~A~ có thứ tự từ điển là nhỏ nhất.

Yêu cầu: Hãy tìm dãy giá trị thỏa mãn tất cả điều kiện trên.

Input

  • Dòng đầu tiên chứa hai số nguyên ~n~ và ~m~ ~(1 \le n,m \le 10^5)~;

  • ~m~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~u_i~ và ~v_i~ ~(1 \le u_i,v_i \le n)~, cho biết có cạnh có hướng nối từ ~u_i~ đến ~v_i~.

Dữ liệu đảm bảo giữa hai đỉnh bất kỳ không có nhiều hơn một cạnh nối và đồ thị đã cho không có chu trình.

Output

Ghi ra ~n~ số nguyên từ ~1~ đến ~n~ là hoán vị nhỏ nhất có thể tìm được.

Scoring

Subtask Điểm Ràng buộc
1 ~30\%~ ~n \le 8~
2 ~30\%~ ~n \le 2000~
3 ~40\%~ Không có ràng buộc gì thêm

Sample Input 1

3 3
1 2
1 3
3 2

Sample Output 1

1 3 2

Sample Input 2

4 5
3 1
4 1
2 3
3 4
2 4

Sample Output 2

4 1 2 3

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.