[PreVOI 23 - Ninh Bình] Bài 2: Permutation

Xem dạng PDF

Gửi bài giải

Điểm: 100,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, Pascal, PyPy, Python, Scratch

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

Năm mới đã đến, và Minh - lớp trưởng đội tuyển X - đã có một dự định: bắt cả đội tuyển đi chạy quanh trường nhân dịp đầu năm mới.

Trường X có ~N~ (~2 \le N \le 100000~) địa điểm được đánh số từ 1 đến ~N~ và ~(N - 1)~ con đường kết nối 2 địa điểm, và chắc chắn giữa 2 địa điểm có ít nhất 1 tuyến đường nối chúng. Minh muốn mọi người bắt đầu từ một địa điểm, và lặp lại thao tác sau ~(N - 1)~ lần: chọn một địa điểm chưa được đến bao giờ để đi từ điểm hiện tại. Để giúp mọi người khỏe hơn, khoảng cách giữa 2 địa điểm liên tiếp phải là một dãy không giảm.

Hay nói cách khác, Minh và các bạn cần tìm một dãy ~p[1], p[2], \dots, p[N]~ sao cho:

  • ~p[1], p[2], \dots, p[N]~ tạo thành một hoán vị, tức là mỗi số từ 1 đến ~N~ xuất hiện đúng một lần.
  • ~dist(p[i], p[i + 1]) \le dist(p[i + 1], p[i + 2])~ (~1 \le i \le N - 2~) với ~dist(a, b)~ là độ dài đường đi ngắn nhất giữa địa điểm ~a~ và địa điểm ~b~.

Yêu cầu: Hãy tìm một dãy như vậy, hoặc in ra "-1" nếu không có dãy nào thỏa mãn.

Input

  • Dòng đầu tiên chứa số ~N~ (~2 \le N \le 100000~).
  • Mỗi dòng trong ~(N - 1)~ dòng tiếp theo ghi 2 số ~a~ và ~b~, biểu thị có cạnh nối giữa 2 đỉnh ~a~ và ~b~. Input đảm bảo đồ thị liên thông.

Output

  • In ra dãy ~n~ số là hoán vị thỏa mãn điều kiện đề bài, hoặc -1 nếu không có dãy nào thỏa mãn.

Sample Input 1

5 
1 2 
1 3 
2 4 
3 5 

Sample Output 1

1 2 3 4 5

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.