Một công ty gồm \(N\) người được đánh số từ \(1\) tới \(N\). Tổng giám đốc của công ty được đánh số là \(1\), mỗi người từ \(2\) tới \(N\) có đúng một cấp trên trực tiếp của mình.
Nếu \(i\) là cấp trên trực tiếp của \(j\), ta gọi \(i\) là quản lý của \(j\). Nếu \(i\) là quản lý của \(j\) thì \(i\) cũng là quản lý của những người mà \(j\) quản lý. Không có trường hợp \(i\) là quản lý của \(j\) đồng thời \(j\) là quản lý của \(i\).
Công ty có chế độ lương thưởng rất đặc biệt, người thứ \(i\) có lương là \(a_i\), người cấp dưới có thể có lương cao hơn người quản lý.
Công ty muốn tổ chức một sự kiện cho toàn bộ công ty. Nhưng nếu hai người \(u\) và \(v\) tham gia, trong đó, \(u\) là quản lý của \(v\) mà lương của \(u\) không cao hơn lương của \(v\) (\(a_u \le a_v\)) thì sẽ gây ra bất hòa. Công ty muốn chọn ra được nhiều người nhất tham gia sự kiện mà không có bất hòa nào.
Phòng tổ chức sự kiện đã lên \(Q\) giả định như sau: Xét người \(u\) (\(1 \le u \le N\)), chọn ra một số người mà \(u\) là quản lý (có thể chọn hoặc không chọn \(u\)) để tham gia sự kiện sao cho:
-
Tổng số người được chọn là lớn nhất;
-
Không có sự bất hoà nào giữa những người được chọn.
Yêu cầu: Với mỗi giả định, in ra số người nhiều nhất có thể chọn để tham gia sự kiện.
Input
Dữ liệu vào:
-
Dòng đầu tiên chứa hai số nguyên dương \(N\) và \(Q\) (\(1 \le N, Q \le 2 \times 10^5\));
-
Dòng thứ hai gồm \(N\) số nguyên dương, số thứ \(i\) là \(a_i\) mô tả mức lương của người thứ \(i\) (\(1 \le a_i \le 10^9\));
-
Dòng thứ ba gồm \(N-1\) số nguyên dương, số thứ \(i\) là \(p_i\) mô tả \(p_i\) là cấp trên trực tiếp của \(i+1\) (\(1 \le p_i \le N\));
-
\(Q\) dòng sau, dòng thứ \(i\) gồm một số nguyên dương \(u_i\) (\(1 \le u_i \le N\)), mô tả giả định thứ \(i\).
Ràng buộc:
-
Có \(15\%\) số test ứng với \(15\%\) số điểm của bài thoả mãn: \(N \le 15\); \(Q = 1\);
-
\(20\%\) số test khác ứng với \(20\%\) số điểm của bài thoả mãn: nếu \(u\) là quản lý của \(v\) thì \(a_u > a_v\);
-
\(15\%\) số test khác ứng với \(15\%\) số điểm của bài thoả mãn: \(i\) là cấp trên trực tiếp của \(i+1\) (\(1 \le i < N\));
-
\(15\%\) số test khác ứng với \(15\%\) số điểm của bài thoả mãn: \(N \le 1000\); \(a_i \le 100\);
-
\(20\%\) số test khác ứng với \(20\%\) số điểm của bài thoả mãn: \(N \le 10^5\); \(a_i \le 100\);
-
\(15\%\) số test còn lại ứng với \(15\%\) số điểm của bài không có ràng buộc gì thêm.
Output
In ra
Với mỗi giả định, in ra một dòng chứa một số nguyên là kết quả tương ứng.
Example 1
Input:
6 3
8 4 2 7 1 3
1 1 3 2 3
1
3
4
Output:
5
2
1
Example 2
Input:
6 2
7 5 6 4 3 1
1 1 3 3 5
3
1
Output:
4
6
Note
Ví dụ thứ nhất. Cấp trên trực tiếp của người \(2, 3, 4, 5, 6\) lần lượt là \(1, 1, 3, 2, 3\) (người \(1\) quản lý \(2\) và \(3\); người \(2\) quản lý \(5\); người \(3\) quản lý \(4\) và \(6\)).
-
Giả định thứ nhất (\(u=1\)): chọn các nhân viên \(1, 2, 5, 4, 6\) (lương \(8, 4, 1, 7, 3\)). Người \(1\) lương \(8\) cao hơn mọi người còn lại, người \(2\) lương \(4\) cao hơn người \(5\) lương \(1\), nên không có bất hoà; tổng cộng \(5\) người;
-
Giả định thứ hai (\(u=3\)): chỉ xét \(3, 4, 6\). Nếu chọn người \(3\) (lương \(2\)) thì không chọn được ai trong \(4, 6\) (lương \(7, 3\)); nên chọn \(4\) và \(6\), được \(2\) người;
-
Giả định thứ ba (\(u=4\)): người \(4\) không quản lý ai, chọn nhân viên \(4\), được \(1\) người.
Ví dụ thứ hai. Cấp trên trực tiếp của người \(2, 3, 4, 5, 6\) lần lượt là \(1, 1, 3, 3, 5\). -
Giả định thứ nhất (\(u=3\)): chọn các nhân viên \(3, 4, 5, 6\) (lương \(6, 4, 3, 1\)), lương mỗi người quản lý đều cao hơn mọi cấp dưới nên chọn được cả \(4\) người;
-
Giả định thứ hai (\(u=1\)): chọn cả \(6\) người (lương \(7, 5, 6, 4, 3, 1\)), không có bất hoà nào nên được \(6\) người.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.