题解 | #MP3光标位置#
MP3光标位置
https://www.nowcoder.com/practice/eaf5b886bd6645dd9cfb5406f3753e15
max_idx = int(input())
actions = input()
pointer = 0
if max_idx > 3:
queue = [i + 1 for i in range(4)]
else:
queue = [i + 1 for i in range(max_idx)]
def up():
global pointer
global queue
if max_idx < 4:
if pointer == 0:
pointer = len(queue) - 1
else:
pointer -= 1
else:
if pointer == 0:
# wrapped back to end
if queue[0] == 1:
queue = [i for i in range(max_idx - 3, max_idx + 1)]
pointer = 3
else:
queue.pop()
queue = [queue[0] - 1] + queue
else:
pointer -= 1
def down():
global pointer
global queue
if max_idx < 4:
if pointer == len(queue) - 1:
pointer = 0
else:
pointer += 1
else:
if pointer == 3:
# wrapped back to front
if queue[-1] == max_idx:
queue = [i + 1 for i in range(4)]
pointer = 0
else:
queue.append(queue[-1] + 1)
queue.pop(0)
else:
pointer += 1
for action in actions:
if action == "U":
up()
elif action == "D":
down()
print(" ".join([str(i) for i in queue]))
print(queue[pointer])