У вас есть \(n\) стеков \(r_1,r_2,\ldots,r_n\). Каждый стек содержит некоторое количество целых положительных чисел в диапазоне от \(1\) до \(n\).
Определим следующие функции:
function init(pos):
stacks := массив, содержащий n стеков r[1], r[2], ..., r[n].
return get(stacks, pos)
function get(stacks, pos):
if stacks[pos] пуст:
return pos
else:
new_pos := верхний элемент stacks[pos]
удалить верхний элемент stacks[pos]
return get(stacks, new_pos)
Вы хотите узнать значения, возвращаемые \(\texttt{init(1)}, \texttt{init(2)}, \ldots, \texttt{init(n)}\).
Заметим, что во время этих вызовов стеки \(r_1,r_2,\ldots,r_n\) не изменяются, поэтому вызовы \(\texttt{init(1)}, \texttt{init(2)}, \ldots, \texttt{init(n)}\) являются независимыми.
Выходные данные
Необходимо вывести \(n\) значений, \(i\)-м из которых является значение, возвращаемое \(\texttt{init(i)}\).