Краткий ответ: нужно найти, на сколько секторов по часовой стрелке надо повернуть барабан от текущего цвета к следующему. Один сектор — это \(360^\circ/5=72^\circ\).
Пусть pos[c] — номер цвета c в первой строке, считая от 0. Для шага k:
\[ A = seq[k-1],\quad B = seq[k] \] \[ d = (\text{pos}[B] - \text{pos}[A]) \bmod 5 \]
Здесь d — число шагов по часовой стрелке.
d = 0→NONE 0d = 1или2→CW d * 72d = 3или4→ выгоднее против часовой:CCW (5-d) * 72
Секторов 5, поэтому угол \(180^\circ\) не встречается и направление всегда определяется однозначно.
import sys
def main():
lines = [line.strip() for line in sys.stdin if line.strip()]
colors = ''.join(lines[0].split())
m = int(lines[1])
seq = ''.join(lines[2].split())
k = int(lines[3])
pos = {c: i for i, c in enumerate(colors)}
a = seq[k - 1]
b = seq[k]
d = (pos[b] - pos[a]) % 5
if d == 0:
print("NONE 0")
elif d <= 2:
print("CW", d * 72)
else:
print("CCW", (5 - d) * 72)
if __name__ == "__main__":
main()
Проверка на примерах:
G → W:d = 3, значитCCW (5-3)*72 = CCW 144.B → Y:d = 1, значитCW 72.Y → Y:d = 0, значитNONE 0.
Всё совпадает с примерами на экране.
