Задача №113446. Повышение квалификации
Взаимодействие сотрудников в некоторой компании организовано в виде иерархической структуры. Всего в компании работают \(n\) сотрудников. Каждому сотруднику присвоен уникальный номер от 1 до \(n\), директору присвоен номер 1. У каждого сотрудника, кроме директора, есть ровно один непосредственный начальник. Непосредственный начальник сотрудника \(i\) имеет номер \(p_i\) , причем \(p_i \lt i\).
Сотрудник \(x\) является подчиненным уровня 1 сотрудника \(y\), если \(p_x = y\). Для \(k \gt 1\) сотрудник \(x\) является подчиненным уровня \(k\) сотрудника \(y\), если сотрудник \(p_x\) является подчиненным уровня \(k – 1\) сотрудника y.
У директора компании появилась возможность направить некоторых сотрудников на курсы повышения квалификации. Для этого он решил выбрать два числа \(L\) и \(R\) и направить на курсы всех сотрудников с номерами \(i\), такими что \(L \le i \le R\).
Перед тем, как выбрать числа \(L\) и \(R\), директор получил \(m\) пожеланий от сотрудников компании, \(j\)-е пожелание задается двумя числами \(u_j\) и \(k_j\) и означает, что сотрудник \(u_j\) просит отправить на курсы одного из своих подчиненных уровня \(k_j\) . Для экономии средств директор хочет выбрать такие \(L\) и \(R\), чтобы количество сотрудников, направленных на повышение квалификации, было минимальным возможным, но при этом все пожелания были выполнены.
Требуется написать программу, которая по заданным в компании отношениям начальник-подчиненный и пожеланиям сотрудников определяет такие числа \(L\) и \(R\), что если отправить на курсы повышения квалификации всех сотрудников с номерами от \(L\) до \(R\) включительно, то все пожелания будут выполнены, а количество сотрудников, направленных на повышение квалификации, будет минимальным возможным. Если оптимальных пар чисел \(L\), \(R\) будет несколько, требуется найти ту из них, в которой значение \(L\) минимально.
Первая строка входного файла содержит число \(n\) — количество сотрудников компании (\(2 \le n \le 200 000\)). Вторая строка содержит \((n – 1)\) чисел: \(p_2, p_3, \dots, p_n (1 \le p_i \lt i\)) — номера непосредственных начальников сотрудников.
Третья строка содержит число \(m\) — количество пожеланий от сотрудников.
Последующие \(m\) строк задают пожелания сотрудников и содержат по два целых числа \(u_j , k_j (1 \le u_j \lt n, 1 \le k_j \lt n\), гарантируется, что у сотрудника \(u_j\) есть хотя бы один подчиненный уровня \(k_j\)).
Необходимо вывести два искомых числа: \(L\) и \(R\). Если оптимальных пар \((L, R)\) несколько, требуется вывести ту, в которой значение \(L\) минимально.
На повышение квалификации будут направлены сотрудники с номерами 3, 4, 5 и 6. Сотрудник с номером 3 является подчиненным уровня 1 сотрудника с номером 1, сотрудник с номером 4 — подчиненным уровня 2 сотрудника с номером 1, а сотрудник с номером 6 — подчиненным уровня 1 сотрудника с номером 3.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
7 1 1 2 2 3 3 3 1 1 3 1 1 2
3 6