У Allison очень много электронных устройств, например iMac, iPod, iPhone и iPad. Поэтому она решила купить удлинители с несколькими розетками, чтобы заряжать свои устройства. После долгих поисков в интернете Allison нашла красивый и изящный удлинитель марки Tianyi (на рисунке внизу слева). Его изящная форма привлекла её с первого взгляда, и она сразу купила $n$ удлинителей этой модели.
Но возникла проблема: дома у Allison всего одна розетка, поэтому ей приходится соединять удлинители друг с другом, чтобы передавать электричество от одного уровня к следующему (как показано на рисунке вверху справа).
Соединения удлинителей образуют дерево: вилка каждого удлинителя, кроме корневого, вставлена в розетку другого удлинителя. Циклы в соединениях запрещены.
У каждого удлинителя три проводника: фазный, нулевой и заземляющий. По мере увеличения числа удлинителей и износа проводников сопротивлением в местах контакта проводников уже нельзя пренебрегать.
Как описать дерево удлинителей и сопротивления между проводниками? Allison придумала математическую модель. Пусть $a_i$ — номер $i$-го удлинителя, а $f_i$ — удлинитель, в который вставлена его вилка (то есть родитель $a_i$ в дереве). Числа $1$, $2$ и $3$ обозначают соответственно фазный, нулевой и заземляющий проводники. Тогда сопротивления во всей цепи можно описать величинами $R(a_i,f_i,x,y)$, где $x,y\in\{1,2,3\}$. Эта величина обозначает сопротивление между проводником $x$ удлинителя $a_i$ и проводником $y$ удлинителя $f_i$. В этой математической модели Allison допускает, что фазный и нулевой проводники тоже могут быть соединены и создавать сопротивление. Ниже приведён пример:
С течением времени сопротивления между проводниками могут меняться. Теперь Allison хочет узнать текущее сопротивление между проводником $x$ удлинителя $a_i$ и проводником $y$ удлинителя $a_j$ в этой древовидной цепи. Корневой удлинитель не подключён к другим удлинителям и имеет номер $1$.
Входные данные
Первая строка входного файла circuit.in содержит положительное целое число $n$ — количество удлинителей.
Следующие $4(n-1)$ строк разбиты на блоки по $4$ строки.
Первая строка $i$-го блока содержит целое число $f_i$: родителем удлинителя с номером $i+1$ является удлинитель $f_i$.
Далее следует матрица $g_{xy}$ размера $3\times3$. Элемент в строке $x$ и столбце $y$ равен обратной величине сопротивления между проводником $x$ удлинителя с номером $i+1$ и проводником $y$ удлинителя $f_i$.
Далее дано целое число $q$ — количество операций.
Следующие $q$ строк содержат по несколько целых чисел.
Первое число — $k$. Если $k=1$, далее следуют четыре целых числа $a_i,x_i,x_j,g$: сопротивление между проводником $x_i$ удлинителя $a_i$ и проводником $x_j$ его родителя $f_i$ нужно заменить на величину, обратную $g$. Гарантируется, что $2\le a_i\le n$.
Если $k=2$, далее следуют четыре целых числа $a_i,x_i,a_j,x_j$: требуется найти сопротивление между проводником $x_i$ удлинителя $a_i$ и проводником $x_j$ удлинителя $a_j$. Гарантируется, что $a_i\ne a_j$.
Выходные данные
Выходной файл — circuit.out.
Для каждого запроса выведите в отдельной строке вещественное число — сопротивление между двумя проводниками.
Значение сопротивления считается верным, если
$$\left|\frac{\text{ответ участника}-\text{эталонный ответ}}{\text{эталонный ответ}}\right|<10^{-3}.$$
Если верны все значения сопротивлений, участник получает баллы за этот тест.
Примеры
Входные данные 1
3 1 6 7 1 4 1 8 8 3 3 2 7 5 8 10 5 7 10 5 5 10 1 3 1 2 2 1 2 2 3 5 2 3 2 2 2 1 2 3 2 5 1 3 1 2 3 2 1 2 2 3 1 3 2 1 2 2 2 1 1 1 1 2 1 2 5 2 3 1 1 2
Выходные данные 1
0.083836 0.095256 0.078828 0.146900
Пример 2
См. файлы circuit/circuit.in и circuit/circuit.ans в каталоге участника.
Ограничения
Во всех тестах входные данные гарантированно задают дерево. Для всех входных сопротивлений выполняется $0<\text{обратная величина сопротивления}\le10$.
| Номера тестов | Особенности |
|---|---|
| $1$–$6$ | $n\le100$, $q\le1000$; гарантируется, что есть только запросы, без изменений. |
| $7$–$10$ | $n\le1000$, $q\le1000$; гарантируется, что дерево является цепью. |
| $11$–$16$ | $n\le10000$, $q\le10000$; гарантируется, что высота дерева не превышает $30$. |
| $17$–$20$ | $n\le10000$, $q\le10000$. |