#858. CENTROID - Trọng tâm của cây

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho cây có N đỉnh, các đỉnh được đánh số từ 1 đến N . Có Q truy vấn là một số u , hãy xác định trọng tâm cây con gốc u . Trọng tâm của cây được định nghĩa là đỉnh mà khi xóa nó khỏi cây ta có một rừng, trong đó không có cây nào trong rừng có quá \frac{1}{2} số đỉnh của cây ban đầu.

Dữ liệu vào:

  • Dòng đầu tiên có hai số N Q là số đỉnh của cây và số truy vấn;
  • Dòng thứ hai có N số p_1, p_2, \ldots, p_N thể hiện có đường đi từ đỉnh i đến p_i với 0\le p_i \le N ( p_i=0 thì đỉnh i là gốc cây).
  • Dòng cuối cùng có Q số tương ứng với Q truy vấn.

Dữ liệu ra:

  • Q số là câu trả lời của Q truy vấn. Nếu truy vấn có nhiều đáp án, hãy in đỉnh là trọng tâm của cây con gần đỉnh gốc cây ban đầu nhất.

Ví dụ:

Dữ liệu vào:

14 9
0 1 1 1 2 2 3 4 4 4 5 5 7 7
1 2 3 4 5 6 7 8 9

Dữ liệu ra:

1 5 7 4 5 6 7 8 9

Giới hạn:

  • 1 \le N, Q \le 3\times 10^5 .