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

Особый граф

Особый граф

Дан ориентированный граф состоящий из n вершин. Особенность графа заключается в том, что из каждой вершины исходит максимум одно ребро. Ваша задача заключается в том чтобы уметь выполнять два вида запросов:

  • 1 a - удалить ребро иcходящее из вершины a. Гарантируется что несуществующее ребро не удаляется (1an)
  • 2 a b - вывести кратчайшее расстояние из вершины a в вершину b, если таковое существует, иначе вывести -1 без кавычек (1a, bn).

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

В первой строке задано натуральное число n (n105) - число вершин графа. В следующей строке задано n целых чисел, i-ое число nexti (0nextin)  вершина, в которую ведет ребро из вершины i. Если nexti = 0, считайте, что из вершины i нет ребра. В третьей строке задано число m (m105) - количество запросов. В последующих m строках заданы запросы, соответствующие описанию из условия.

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

Для каждого запроса вида 2 a b выведите ответ на одной строке, в том порядке, в котором заданы запросы.

Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
6
3 3 4 5 6 4
6
2 1 6
2 1 4
2 1 2
1 3
2 1 6
2 1 4
Çıxış verilənləri #1
4
2
-1
-1
-1
Giriş verilənləri #2
4
4 4 1 3
5
2 2 4
2 2 1
1 4
1 2
2 3 1
Çıxış verilənləri #2
1
3
1
Mənbə 2013 IX Международная Жаутыковская Олимпиада Алматы, Казахстан, 16 января