#856. SUMMAX4 - Tổng lớn nhất trên 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 đồ thị dạng cây gồm N đỉnh, các đỉnh được đánh số từ 1 đến N , mỗi đỉnh i được gán một số nguyên dương a_i . Gọi dist(x, y) là khoảng cách giữa hai đỉnh x, y , khoảng cách được tính bằng số cạnh trên đường đi đơn từ x đến y . Mỗi khi chọn một đỉnh u bất kì làm gốc thì ta thu được tổng giá trị của cây là

\sum\limits_{i = 1}^N {dist(i,u)} \times {a_i}

Hãy tìm giá trị lớn nhất có thể của cây.

Dữ liệu vào:

  • Dòng đầu tiên ghi số N là số đỉnh của cây;
  • Dòng tiếp theo ghi N số nguyên dương a_1, a_2, \ldots, a_N là các số được gán với các đỉnh theo thứ tự;
  • Dòng tiếp theo 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ữ liệu ra:

  • Ghi ra một số duy nhất là giá trị lớn nhất có thể của cây.

Ví dụ:

Dữ liệu vào:

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

Dữ liệu ra:

269

Dữ liệu vào:

8
9 4 1 7 10 1 6 5
0 1 2 1 1 5 5 5

Dữ liệu ra:

121

Giới hạn:

  • N \le 2\times 10^5; a_i \le 10^9 .