Задача Задача №3745642
А
А
Краткий ответ: нужно найти кратчайший поворот от k-го цвета последовательности к (k+1)-му. Один сектор колеса равен \(360/5=72^\circ\).
import sys
data = sys.stdin.read().split()
wheel = data[:5] # порядок цветов на колесе
n = int(data[5]) # длина последовательности
seq = data[6:6 + n] # сама последовательность
k = int(data[6 + n]) # номер, с 1
a = seq[k - 1] # k-й цвет
b = seq[k] # (k+1)-й цвет
p = wheel.index(a)
q = wheel.index(b)
# сколько секторов идти по часовой и против часовой
cw = (q - p) % 5
ccw = (p - q) % 5
if cw == 0:
print("NONE 0")
elif cw < ccw:
print("CW", cw * 72)
else:
print("CCW", ccw * 72)
Как это работает:
- Находим позиции двух нужных цветов на колесе:
pиq. - По часовой стрелке расстояние:
(q - p) % 5. - Против часовой:
(p - q) % 5. - Выбираем меньшее расстояние и переводим секторы в градусы: умножаем на
72.
Проверка на примерах:
G→W: по часовой 3 сектора, против часовой 2 →CCW 144.B→Y: по часовой 1 сектор →CW 72.Y→Y: поворот не нужен →NONE 0.
