Працьовитий студент#368

Працьовитий студент

1 секунда
64 мегабайти
Дуже легка

Біллі — старанний студент. Він захоплюється комп'ютерами й хоче дізнатися про них якомога більше. Наразі він вивчає теорію графів і має написати програму, яка зможе побудувати граф, зображений на малюнку вище.

Вершини графа послідовно пронумеровані цілими числами від до N-1 (N \leq 10000). Існує два типи ребер: зворотні ребра, позначені літерою на малюнку (наприклад, з вершини у вершину , або з вершини у вершину ), і прямі ребра, позначені літерою (наприклад, з у або з у ).

Програма Біллі спочатку працює з графом, який містить вершини , , , . Далі вона повинна будувати граф згідно з послідовністю команд у текстовому файлі. Кожна команда має такий формат:

де і — номери вершин, а — це послідовність операцій, виконуваних справа наліво. Операція позначається одним із наступних символів:

Тут — масив вершин графа. Аргументом першої операції є вершина . Результат операцій та — це вершина, яка стає аргументом для всіх наступних операцій. Операції та повинні бути в крайньо лівій позиції. Наприклад, для команди дії такі:

index0 = 4, index1 = 0

x = f(v[0]) // вперед до вузла 3, x = 3 y = f(x) // вперед створює вузол (4), y = 4 k(y) // виводить ключ (4) V[4] = y // помістити вузол (4) у масив v

Вершина поміщається в масив лише командою . Спочатку містить вершини з ключами , , , : v[0]=0, v[1]=1, v[2]=2, v[3]=3.

Вхідні дані

Текстовий файл, що містить послідовність команд. У вхідних даних пробіли можуть траплятись довільно. Вхід завершується кінцем файлу.

Вихідні дані

Кожен вивід має здійснюватись у стандартний вихід з початку рядка. Порожніх рядків немає.

Приклади

Зразок вхідних і вихідних даних наведено в таблиці нижче.

Приклад 1

Loading
Loading