Задача C. Автомат с игрушками

Автор:Жюри XXVI Всероссийской олимпиады школьников по информатике   Ограничение времени:1 сек
Входной файл:toy.in   Ограничение памяти:256 Мб
Выходной файл:toy.out  

Условие

В развлекательном центре Е-города был установлен игровой автомат нового поколения. В автомат можно бросить монету и следить за её продвижением сверху вниз по разветвляющемуся лабиринту из трубок. В лабиринте есть n узлов, которые пронумерованы числами от 1 до n. При бросании монета попадает в первый узел. Каждый узел лабиринта, кроме первого, имеет одну входящую сверху трубку, по которой монета может в него попасть. Из каждого узла выходит не более двух трубок, идущих вниз, одна из которых ведет налево, а другая — направо. Каждая трубка имеет некоторую ширину. Монета проваливается в более широкую трубку, а в случае равенства ширины трубок — в левую.

После прохождения монеты по трубке ширина этой трубки уменьшается на 1. Монета не может пройти по трубке ширины 0. Если монета достигла узла, из которого она не может дальше двигаться вниз, автомат останавливается и ждёт, когда в него бросят следующую монету.

Изначально в каждом узле лабиринта находится по игрушке. Когда монета попадает в узел первый раз, игрушка, находящаяся в этом узле, достаётся игроку, бросившему эту монету.

Панкрату понравилась игрушка, которая находится в узле с номером v.

Требуется написать программу, которая определяет, сколько монет должен бросить в автомат Панкрат, чтобы получить игрушку из узла v.

В первом примере первая монета пройдет лабиринт, и игрок получит игрушки из вершин 1, 3 и 4. Вторая монета пройдет лабиринт, и игрок получит игрушки из вершин 2 и 6. Третья монета пройдет лабиринт, и игрок получит игрушки из вершин 5 и 7.

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

В первой строке входного файла задано число n — количество узлов в лабиринте. В последующих n строках заданы описания всех узлов, в k-й из этих строк описан узел с номером k.

Описание k-го узла состоит из четырех целых чисел: ak, uk, bk, wk. Если из k-го узла выходит левая трубка, то ak — номер узла, в который она ведет (k < ak ≤ n), а uk — её ширина. Если левой трубки нет, то ak = uk = 0. Если из k-го узла выходит правая трубка, то bk — номер узла, в который она ведет (k < bk ≤ n), а wk — её ширина. Если правой трубки нет, то bk = wk = 0.

В последней строке задано целое число v (1 ≤ v ≤ n) — номер узла, в котором находится игрушка, понравившаяся Панкрату.

Гарантируется, что во все узлы, кроме первого, входит ровно одна трубка.

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

Выходной файл должен содержать одно число — количество монет, которое необходимо бросить в автомат Панкрату, чтобы получить игрушку, которая находится в узле v. Если получить выбранную игрушку невозможно, выведите число~ − 1.

Ограничения

1 ≤ n ≤ 105 1 ≤ uk, wk ≤ 109

Примеры тестов

Входной файл (toy.in) Выходной файл (toy.out)
1
7
2 1 3 2
0 0 6 3
4 1 5 1
0 0 0 0
7 2 0 0
0 0 0 0
0 0 0 0
5
3
2
4
0 0 2 1
4 1 3 1
0 0 0 0
0 0 0 0
3
-1

0.087s 0.026s 13