Con kiến trên cây

Đề bài

Mô tả

Cho một cây có n đỉnh được đánh số từ 1 đến n, gốc là đỉnh 1. Một lá là đỉnh khác gốc và có đúng một cạnh nối tới đỉnh khác.

Một con kiến đứng tại gốc và muốn thực hiện một hành trình thoả mãn:

  • Bắt đầu và kết thúc tại gốc.
  • Đi qua mỗi cạnh đúng hai lần (mỗi lượt đi qua chỉ tính một chiều).
  • Khi đi, các lá được thăm theo đúng thứ tự cho trước.

Hãy in ra một hành trình hợp lệ, hoặc thông báo không tồn tại.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n (3≤n≤300) — số đỉnh của cây.
  • n−1 dòng tiếp theo, mỗi dòng chứa hai số nguyên u,v (1≤u,v≤n, u≠v) mô tả một cạnh nối đỉnh u và đỉnh v.
  • Dòng cuối cùng chứa k số nguyên là dãy thứ tự các lá cần được thăm. Mỗi lá xuất hiện đúng một lần.

Dữ liệu ra

  • Nếu không tồn tại hành trình thoả mãn, in ra −1.
  • Ngược lại, in ra 2n−1 số nguyên là dãy các đỉnh con kiến lần lượt đi qua trong hành trình (kể cả gốc xuất phát và gốc kết thúc).

Ràng buộc

  • 3≤n≤300
  • Đồ thị đã cho là cây.
  • Mỗi lá xuất hiện đúng một lần trong dãy thứ tự thăm.

Ví dụ

Input Output Giải thích
3
1 2
2 3
3
1 2 3 2 1 Cây là đường thẳng 1−2−3. Lá duy nhất là 3. Kiến đi 1→2→3 rồi quay về 1.
6
1 2
1 3
2 4
4 5
4 6
5 6 3
1 2 4 5 4 6 4 2 1 3 1 Các lá là 3,5,6 và phải được thăm theo thứ tự 5,6,3. Kiến đi xuống cây con của 2 trước (để thăm 5 rồi 6), sau đó mới sang cây con của 3.
6
1 2
1 3
2 4
4 5
4 6
5 3 6
-1 Thứ tự 5,3,6 buộc kiến phải rời cây con của 2 để thăm 3 rồi quay lại 6 — như vậy phải đi qua cạnh 1−2 quá hai lần, nên không tồn tại hành trình.

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