H2. Личные проблемы (сложная версия)
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это сложная версия задачи. Отличие между версиями заключается в том, что в этой версии $$$t \le 10^4$$$, $$$n \le 2 \cdot 10^5$$$ и сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$. Вы можете делать взломы только в том случае, если решили все версии этой задачи.

Соперники Аксиал и Нифе в очередной раз поссорились и решили разрешить спор, сыграв в игру на дереве.

Им дано дерево с $$$n$$$ вершинами, пронумерованными от $$$1$$$ до $$$n$$$. В каждой вершине записано либо $$$0$$$, либо $$$1$$$. Изначально в двух различных вершинах $$$x$$$ и $$$y$$$ записано $$$0$$$, а во всех остальных вершинах записано $$$1$$$.

Игроки ходят по очереди, первым ходит Аксиал. На каждом ходу текущий игрок выбирает вершину $$$v$$$, в которой записано $$$1$$$, и меняет её значение на $$$0$$$. Перед изменением значения в вершине $$$v$$$ обозначим через $$$c_v$$$ количество соседей вершины $$$v$$$, в которых записано $$$0$$$. Если $$$c_v = 1$$$, текущий игрок получает одно очко. Иначе он не получает очков. Игра заканчивается, когда во всех вершинах записано $$$0$$$.

Пусть $$$p$$$ и $$$q$$$ — итоговое количество очков Аксиала и Нифе соответственно. Аксиал хочет максимизировать $$$p - q$$$, а Нифе — минимизировать эту разность. Определите значение $$$p - q$$$ в конце игры, если оба игрока играют оптимально.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

В первой строке каждого набора входных данных находятся три целых числа $$$n$$$, $$$x$$$ и $$$y$$$ ($$$2 \le n \le 2 \cdot 10^5$$$, $$$1 \le x, y \le n$$$, $$$x \ne y$$$) — количество вершин в дереве и две вершины, в которых изначально записано $$$0$$$.

В каждой из следующих $$$n - 1$$$ строк находятся два целых числа $$$u$$$ и $$$v$$$ ($$$1 \le u, v \le n$$$, $$$u \ne v$$$), обозначающих ребро между вершинами $$$u$$$ и $$$v$$$.

Гарантируется, что данный граф является деревом.

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.

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

Для каждого набора входных данных выведите одно целое число — значение $$$p - q$$$ в конце игры.

Пример
Входные данные
4
3 1 2
1 2
2 3
4 1 4
1 2
2 3
3 4
3 1 3
1 2
2 3
6 2 3
1 2
1 3
1 4
1 5
1 6
Выходные данные
1
1
0
0
Примечание

На рисунках ниже в синих вершинах изначально записано $$$0$$$, а в белых — $$$1$$$.

В первом примере начальное состояние выглядит так:

Аксиал меняет значение в вершине $$$3$$$ на $$$0$$$. У неё ровно один сосед, в котором записано $$$0$$$, поэтому Аксиал получает одно очко. Следовательно, $$$p - q=1$$$.

Во втором примере начальное состояние выглядит так:

Аксиал может изменить значение в вершине $$$2$$$ или вершине $$$3$$$ на $$$0$$$ и получить одно очко. После этого у оставшейся вершины будет два соседа, в которых записано $$$0$$$, поэтому Нифе не получит очков. Следовательно, $$$p - q=1$$$.

В третьем примере начальное состояние выглядит так:

Единственный возможный ход — изменить значение в вершине $$$2$$$ на $$$0$$$. У неё два соседа, в которых записано $$$0$$$, поэтому Аксиал не получает очков. Следовательно, $$$p - q=0$$$.