Follow Ghost Legs

Follow Ghost Legs

Ghost leg is a well-known method used to get random results. This mechanism has the effect of changing the order in the list.

example_01 example_02

Examples:

assert follow_ghost_legs(3, [(1, 2), (2, 3), (1, 2)]) == [3, 2, 1]
assert follow_ghost_legs(4, [(2, 3), (1, 2), (2, 3), (3, 4)]) == [3, 2, 4, 1]
assert follow_ghost_legs(5, [(3, 4), (4, 5), (3, 4), (2, 3), (3, 4)]) == [1, 5, 4, 2, 3]
assert follow_ghost_legs(6, [(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]) == [
    2,
    3,
    4,
    5,
    6,
    1,
]

You are given the number of vertical lines and a list of legs as input values.

  • If the number of vertical lines is 3, then the starting points are 1, 2, and 3 respectively.
  • The leg is a tuple of two integers, which represent the two vertical lines connected by the leg. (The leg always connects adjacent vertical line).
  • The order of legs represents the level at which they are placed (first leg is the top, and last leg is the bottom).

Follow the ghost legs and return a list of converted numbers.

Input: The number of vertical lines and a list of legs (an integer and a list of tuple of two integers).

Output: A list of converted numbers (a list of integers).