PreVOI 2024 - Contest 1 - Đường kính

Xem dạng PDF

Gửi bài giải

Điểm: 60,00 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout
Test chính thức

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ị vô hướng dạng cây gồm ~N~ đỉnh. Xét hai tập đỉnh ~A~ và ~B~, ban đầu tập ~A~ chứa toàn bộ ~N~ đỉnh trên cây, còn tập ~B~ rỗng.

Gọi khoảng cách giữa hai đỉnh ~u, v~ trên cây là số cạnh ít nhất cần đi qua để đi từ ~u~ đến ~v~. Đường kính của một tập đỉnh là khoảng cách xa nhất giữa hai đỉnh trong tập đó.

Bạn được cho ~Q~ truy vấn, truy vấn thứ ~i~ gồm một số nguyên ~v_i~ tương ứng với việc xoá đỉnh ~v_i~ thuộc tập ~A~, và thêm đỉnh ~v_i~ vào tập ~B~. Hãy đưa ra đường kính của tập đỉnh ~A~ và tập đỉnh ~B~ sau mỗi truy vấn.

Input

  • Dòng đầu tiên chứa hai số nguyên tương ứng là số đỉnh ~N~ ~(1 \le N \le 4 \cdot 10^5)~ của cây đồ thị và số truy vấn ~Q~ ~(1 \le Q < N)~.

  • ~N-1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~a, b~ ~(1 \le a, b \le N)~ tương ứng là hai đỉnh có cạnh nối với nhau trên cây.

  • ~Q~ dòng cuối cùng, dòng thứ ~i~ là số nguyên ~v_i~ ~(1 \le v_i \le N)~ tương ứng với truy vấn thứ ~i~. Dữ liệu đảm bảo các ~v_i~ là phân biệt.

Output

  • Ghi kết quả trên ~Q~ dòng, dòng thứ ~i~ chứa hai số nguyên tương ứng là đường kính của tập ~A~ và đường kính của tập ~B~ sau truy vấn thứ ~i~.

Scoring

Subtask Điểm Ràng buộc
1 ~20\%~ ~N, Q \le 10^3~.
2 ~20\%~ ~N \le 10^5, Q \le 10^3~.
3 ~20\%~ mỗi đỉnh có tối đa hai cạnh nối với nó.
4 ~20\%~ khoảng cách giữa hai đỉnh xa nhất trên cây không vượt quá ~20~.
5 ~20\%~ Không có giới hạn gì thêm

Sample Input 1

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

Sample Output 1

4 0
4 1
1 2
0 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.