trang chủ / bài tập / blogtopic

Thứ tự viết blog

Đề bài

Mô tả

Johnny định viết n bài blog, đánh số từ 1 đến n. Giữa một số cặp blog có liên kết tham chiếu hai chiều; hai blog được nối bởi một liên kết bắt buộc phải nói về hai chủ đề khác nhau.

Có đúng n chủ đề, đánh số từ 1 đến n. Johnny viết lần lượt từng blog theo một thứ tự nào đó. Khi bắt đầu viết một blog, anh nhìn vào các blog đã viết xong có liên kết với nó và chọn chủ đề có số hiệu nhỏ nhất chưa bị các blog đó dùng. Ví dụ, nếu các blog đã viết xong nối với blog hiện tại mang các chủ đề 1,3,1,5,2 thì Johnny chọn chủ đề 4.

Bạn đã dự đoán được chủ đề tốt nhất cho từng blog: blog thứ i nên mang chủ đề ti. Hãy tìm một thứ tự viết blog sao cho chiến lược trên của Johnny tạo ra đúng bộ chủ đề t1,t2,,tn, hoặc cho biết không tồn tại thứ tự nào như vậy.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số blog và số liên kết.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ab (ab), cho biết có một liên kết giữa blog a và blog b. Không có hai liên kết nào trùng nhau.
  • Dòng cuối chứa n số nguyên t1,t2,,tn: chủ đề mong muốn của từng blog.

Dữ liệu ra

In ra 1 nếu không tồn tại thứ tự thoả mãn.

Ngược lại, in ra n số nguyên đôi một khác nhau p1,p2,,pn: thứ tự Johnny viết các blog. Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 1n5·105
  • 0m5·105
  • 1a,bn, ab
  • 1tin

Ví dụ

Input Output Giải thích
3 3
1 2
2 3
3 1
2 1 3
2 1 3 Viết blog 2 trước: chưa có hàng xóm nào nên nhận chủ đề 1. Rồi blog 1: hàng xóm đã viết là blog 2 mang chủ đề 1, nên nhận chủ đề 2. Cuối cùng blog 3: hai hàng xóm mang chủ đề 12, nên nhận chủ đề 3.
3 3
1 2
2 3
3 1
1 1 1
-1 Ba blog đôi một liên kết nên không thể cùng mang chủ đề 1.
5 3
1 2
2 3
4 5
2 1 2 2 1
2 5 1 3 4 Blog 2 và blog 5 được viết đầu tiên và nhận chủ đề 1. Sau đó blog 1, blog 3 (đều nối với blog 2) và blog 4 (nối với blog 5) nhận chủ đề 2. Thứ tự 2 5 4 1 3 cũng là một đáp án hợp lệ.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0