| Практика Dynamic Forest offline queries |
|---|
| Закончено |
Дан лес на $$$n$$$ вершинах, изначально без рёбер.
Также даны $$$q$$$ запросов трёх типов:
Гарантируется, что числа $$$i$$$ различны, и граф остаётся лесом.
Первая строка содержит два целых числа $$$n$$$ и $$$q$$$ ($$$2 \le n,q \le 2\cdot 10^5$$$) — количество вершин и количество запросов соответственно.
$$$j$$$-я из следующих $$$q$$$ строк описывает запрос в соответствии со следующим принципом:
Сначала даётся одна строка $$$type$$$ ($$$type \in$$$ {link, cut, get_path}) — тип запроса.
Если $$$type$$$ равен link, то следуют два целых числа $$$u,v$$$ ($$$1 \le u,v \le n$$$), что означает, что добавляется новое неориентированное ребро между $$$u$$$ и $$$v$$$.
Если $$$type$$$ равен cut, то следует одно целое число $$$i$$$ ($$$1 \le i \lt j \le q$$$) — индекс запроса, который добавил ребро, которое требуется удалить.
Если $$$type$$$ равен get_path, то следуют два целых числа $$$u,v$$$ ($$$1 \le u,v \le n$$$) — концы запрашиваемого пути.
Для каждого из запросов типа get_path выведите длину пути, если он существует; иначе выведите $$$-1$$$.
9 12link 1 2link 2 3get_path 1 3cut 2get_path 1 3link 8 7link 8 9link 2 8get_path 9 3get_path 9 2link 3 1get_path 9 3
2 -1 -1 2 4
| Название |
|---|


