Задача №114695. Задача для разминки рук

Дано дерево на \(n\) вершинах с корнем в вершине \(1\). В \(i\)-й вершине записан символ \(t_i\) - одна из трёх латинских букв a , b , c . Также дана строка \(s\) длины \(m\), состоящая из строчных латинских букв a , b , c .

Каждой паре вершин \((u, v)\) естественным образом можно сопоставить строку, которая получается последовательным выписыванием символов в вершинах на единственном простом пути от \(u\) до \(v\), начиная с символа в вершине \(u\).

Вам нужно посчитать количество пар целых чисел \((u, v)\) таких, что \(1\leq u,v\leq n\), и строка, соответствующая пути от \(u\) до \(v\), лексикографически меньше или равна \(s\).

Деревом называется связный граф, где у каждой вершины кроме первой (первая вершина называется корнем) задан единственный предок, с которым вершина соединена ребром. Путём в дереве между вершинами \(u\) и \(v\) называется такая последовательность вершин, в которой \(u\) — первая вершина, \(v\) — последняя, и любые 2 подряд идущие вершины соединены ребром. Путь называется простым, если никакая из вершин не встречается в нем дважды.

Строка \(a\) считается лексикографически меньше строки \(b\), если существует такое число \(k\), что на всех позициях меньших \(k\) строки \(a\) и \(b\) совпадают, а на \(k\)-й позиции символ строки \(a\) лексикографически меньше соответствующего символа строки \(b\), или же в том случае, если длина строки \(a\) меньше длины строки \(b\), а все символы на одинаковых позициях у строк совпадают.

Входные данные

В первой строке вводятся два целых числа \(n\) и \(m\) (\(2 \le n \le 10^6\), \(1 \le m \le 10^6\)) — число вершин в дереве и длина строки для сравнения.

Во второй строке без пробелов вводятся \(m\) символов \(s_1s_2\ldots s_m\) — строка для сравнения.

В третьей строке без пробелов вводятся \(n\) символов \(t_1t_2\ldots t_n\), \(i\)-й из которых обозначает букву, записанную в вершине \(i\).

В следующей строке вводится \((n - 1)\) число \(p_2, p_3, p_4 \ldots, p_n\) (\(1 \le p_i \le n\)), где \(p_i\) обозначает номер предка вершины \(i\) в дереве.

Гарантируется, что каждый символ в данных строках \(s\) и \(t\) равен одной из строчных латинских букв « a », « b », « c », и что заданный граф действительно образует дерево.

Выходные данные

Выведите единственное число — искомое количество пар.

Примечание

В первом примере всего есть 9 пар чисел от 1 до 3. Парам \((1,1)\), \((1,2)\), \((1,3)\), \((3,3)\), \((3,1)\) соответствуют строки a , abc , ab , b , ba . Парам, где первое число 2, соответствуют строки, начинающиеся на c — эти строки в любом случае лексикографически больше строки ba . Паре \((3,2)\) соответствует строка bc , которая лексикографически больше ba .

Во втором примере всего есть 25 пар. Первым числом в паре не может быть 3, так как в вершине 3 записана буква c , которая меньше первой буквы \(s\). Также не подходят пары \((2,4)\) и \((5,4)\).

В третьем примере все символы в вершинах больше первой буквы \(s\), поэтому ни одна пара вершин не подходит.

Система оценки

Тесты к этой задаче состоят из 12 групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп. Обратите внимание, прохождение тестов из условия не требуется для некоторых групп. Offline-проверка означает, что результаты тестирования вашего решения на данной группе станут доступны только после окончания соревнования.

Доп. ограничения
Группа Баллы \(n\) \(m\) Необх. группы Комментарий
0 0 Тесты из условия.
1 11 \(n \le 500\) \(m \le 500\) 0
2 8 \(n \le 5000\) \(m \le 5000\) 0, 1
3 13 \(n \le 30\,000\) \(m \le 500\) 0, 1 Нет путей длины больше \(500\).
4 10 \(n \le 100\,000\) \(m \le 100\,000\) \(p_i = i - 1\)
5 14 \(n \le 100\,000\) \(m \le 100\,000\) \(s\) и \(t\) состоят из символов laquo; a raquo;.
6 8 \(n \le 100\,000\) \(m \le 100\,000\) 0–5
7 5 \(n \le 200\,000\) \(m \le 200\,000\) 0–6
8 5 \(n \le 350\,000\) \(m \le 350\,000\) 0–7
9 6 \(n \le 500\,000\) \(m \le 500\,000\) 0–8
10 6 \(n \le 650\,000\) \(m \le 650\,000\) 0–9 Offline-проверка.
11 7 \(n \le 800\,000\) \(m \le 800\,000\) 0–10 Offline-проверка.
12 7 0–11 Offline-проверка.
Примеры
Входные данные
3 2
ba
acb
3 1
Выходные данные
5
Входные данные
5 3
bac
abcab
1 1 3 1
Выходные данные
18
Входные данные
2 3
acc
bb
1
Выходные данные
0
Сдать: для сдачи задач необходимо войти в систему