eolymp
bolt
Try our new interface for solving problems
Məsələlər

Дерево в отрезке

Дерево в отрезке

Задано подвешенное дерево, содержащее n (1n300000) вершин. Каждая вершина покрашена в один из n цветов. Требуется для каждой вершины v вычислить количество вершин с цветами в m (1m10) отрезках-запросах li, ri, встречающихся в поддереве с корнем v. Вершина лежит в отрезке, если номер её цвета c (licri).

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

В первой строке задано числа n и m. Последующие n строк описывают вершины, по одной в строке. Описание очередной вершины i имеет вид pici, где pi - номер родителя вершины i, а ci - цвет вершины i (1cin). Для корня дерева pi = 0.

Следующие m строк содержат запросы в формате двух чисел li, ri (1lirin).

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

Выведите n строк по m чисел, обозначающих количества цветов в поддеревьях с корнями в вершинах 1, ..., n в соответствующих отрезках.

Zaman məhdudiyyəti 2 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
5 2
2 1
3 2
0 3
3 3
2 1
1 5
2 3
Çıxış verilənləri #1
1 0
3 1
5 3
1 1
1 0
Giriş verilənləri #2
1 1
0 1
1 1
Çıxış verilənləri #2
1
Giriş verilənləri #3
2 1
0 1
1 1
1 1
Çıxış verilənləri #3
2
1
Giriş verilənləri #4
2 3
0 1
1 2
1 1
2 2
1 2
Çıxış verilənləri #4
1 1 2
0 1 1