점핑 경로
시간 제한10초메모리 제한512 MB
루트 트리의 각 정점에 정수가 붙어 있을 때, 라벨이 감소하지 않는 가장 긴 조상 사슬의 길이와 그 길이를 갖는 사슬의 개수를 11092019로 나눈 나머지로 구한다.
문제
각 정점에 음이 아닌 정수가 붙어 있는 루트 트리가 주어진다.
정점 v1, v2, ..., vk가 모든 i < j에 대해 vi가 vj의 조상인 수열일 때, 이를 점핑 경로라고 부른다. vi는 v**i+1의 조상이지만 반드시 부모일 필요는 없다. 이것이 점핑이라는 이름의 이유다.
다음 두 가지를 구하라.
- 정점의 레이블이 비내림차순인 가장 긴 점핑 경로의 길이(정점의 개수).
- 정점의 레이블이 비내림차순인, 그 길이의 점핑 경로의 개수.
입력
첫 줄에는 트리의 정점 수 n (1 ≤ n ≤ 106)이 주어진다. 정점은 1부터 n까지 번호가 매겨지며, 정점 1이 트리의 루트다.
다음 n개의 줄에는 각 정점의 레이블 x (0 ≤ x ≤ 106)가 정점 순서대로 주어진다.
다음 n − 1개의 줄에는 정점 2부터 n까지의 부모 p (1 ≤ p ≤ *n)가 정점 순서대로 주어진다.
정점들이 하나의 트리, 즉 연결되어 있고 사이클이 없음을 보장한다.
출력
한 줄에 두 정수를 공백으로 구분해 출력한다.
첫 번째 정수는 레이블이 비내림차순인 가장 긴 점핑 경로의 길이다. 두 번째 정수는 레이블이 비내림차순인, 그 길이의 점핑 경로의 개수다. 두 번째 정수는 클 수 있으므로 11092019로 나눈 나머지를 출력한다.