Республиканская олимпиада по информатике 2021 года за 11 класс | Казахстанские олимпиады

Марафон Канто

Ограничение по времени Ограничение по памяти
2 секунды 256 мегабайт

Скоро лето, Есмахан решил, что пора начать бегать по утрам в своем городе Канто. Город Канто представляет собой nn перекрестков соединённых n1n − 1 дорогой, где от любого перекрестка можно добраться до любого другого перекрестка двигаясь по дорогам. В планах было начать бегать с воскресенья, однако в этот же день был назначен городской ежегодный веломарафон Канто.

Определим маршрут (a,b)(a, b), что a<ba < b, множеством дорог, которые лежат на кратчайшем пути между стартовым перекрестком aa и конечным перекрестком bb. Длиной маршрута (a,b)(a, b) будем называть количество дорог по которым он проходит.

Есмахан не хочет бегать по занятым дорогам веломарафона во время пробежки.

На вход дается nn количество перекрёстков в городе Канто. Далее дается n1n − 1 дорога соединяющая два перекрестка. Гарантируется, что дается дороги таким образом, что от любого перекрестка можно добраться до любого другого перекрестка переходя только по дорогам. После дается q количество запросов на которые вы должны ответить. Запросы даются двух видов:

  1. xyx y, в нем вы должны ответить длиной самого длинного маршрута если веломарафон будет проходить через маршрут (x, y).

  2. kk, в нем должны ответить количеством различных маршрутов (x,y)(x, y), что Есмахан выберет маршрут длиной kk.

Выведите ответ на каждый запрос.

Поэтому хочет выяснить длину самого длинного маршрута (u,v)(u, v) который будет проходить по свободным дорогам от веломарафона маршрутом (x,y)(x, y), чтобы его пробежка была максимальна.

Так же, Есмахан хочет выяснить сколько возможных маршрутов (x,y)(x, y) веломарафона возможно, что его пробежке будет длины kk?

Формат входного файла

Первая строка содержит одно целое число nn (1n5105)(1 \leq n \leq 5 * 10^5), обозначающее количество перекрестков в городе Канто.

В каждой из следующих n1n − 1 строк содержится описание дорог: два целых числа uu и v(1v,un,uv)v(1 \leq v, u \leq n, u \neq v).

Следующая строка содержит одно целое число q(1q5105)q (1 \leq q \leq 5 * 10^5), обозначающее количество запросов.

Следующие qq строк содержат описания запросов.

Каждый запрос задан в одном из следующих форматов в зависимости от типа запроса:

1xy(1x,yn)1 x y (1 \leq x, y \leq n) для запросов первого типа.

2k(0kn1)2 k (0 \leq k \leq n − 1) для запросов второго типа.

Формат выходного файла

Ддя каждого запросы выведите ответ на него.

Примеры

Ввод

8
1 2
2 3
2 4
3 5
1 6
4 7
7 8
6
2 3
1 4 6
1 1 8
2 4
1 2 3
2 2

Вывод

4
2
2
6
5
12