trang chủ / đề bài / gr09_lextopo

Thứ tự topo nhỏ nhất

Đề bài

Mô tả

Có n công việc đánh số từ 1 đến n và m yêu cầu; yêu cầu thứ i có dạng "công việc ui phải làm trước công việc vi". Mỗi lần chỉ làm một công việc, và phải làm hết cả n công việc.

Trong mọi thứ tự thực hiện thỏa mãn tất cả các yêu cầu, hãy tìm thứ tự nhỏ nhất theo thứ tự từ điển: thứ tự a nhỏ hơn thứ tự b nếu tại vị trí đầu tiên mà hai thứ tự khác nhau, số của a nhỏ hơn số của b.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n, m.
  • m dòng tiếp theo, dòng thứ i chứa hai số nguyên ui,vi. Các yêu cầu có thể lặp lại, và có thể có ui=vi.

Dữ liệu ra

In ra trên một dòng n số là thứ tự tìm được, cách nhau bởi dấu cách. Nếu không có thứ tự nào thỏa mãn, in ra -1.

Ràng buộc

  • 1≤n≤105
  • 0≤m≤2·105
  • 1≤ui,vi≤n

Ví dụ

Input Output Giải thích
4 2
4 1
3 2
3 2 4 1 Lúc đầu làm được công việc 3 hoặc 4; chọn 3. Sau đó làm được 2 hoặc 4; chọn 2. Thứ tự 3 4 2 1 cũng hợp lệ nhưng lớn hơn.
5 5
1 2
2 3
3 4
4 2
5 1
-1 Ba công việc 2,3,4 yêu cầu vòng tròn lẫn nhau nên không thể sắp xếp.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0