Алгоритм решения задания 14. Часть 1
Учимся решать 15 задания первого типа
Читать
Исполнитель Кузнечик действует на координатной прямой. В начальный момент Кузнечик находится в начале координатной прямой, в точке с координатой 0.
У исполнителя существует 3 команды: Вперёд n (где n — целое число), вызывающая передвижение Кузнечика на n точек вперёд; Назад n (где n — целое число), вызывающая передвижение Кузнечика на n точек назад; Перекрасить, закрашивающая точку, где в данный момент находится Исполнитель, если эта точка еще на закрашена. Если точка уже закрашена, то команда Перекрасить отменяет закраску этой точки.
Запись Повтори k [Команда 1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.
Определите, сколько точек будет закрашено после выполнения следующего алгоритма:
Повтори 16 [Вперёд 9 Перекрасить Назад 6 Перекрасить Назад 3 Вперёд 2 Перекрасить]
# Словарь с координатой клетки
# и её статусом: закрашена или нет
status = {}
# Текущая позиция кузнечика
pos = 0
# Алгоритм
for _ in range(16):
pos += 9
status[pos] = not status.get(pos, 0)
pos -= 6
status[pos] = not status.get(pos, 0)
pos -= 3
pos += 2
status[pos] = not status.get(pos, 0)
# Выводим кол-во закрашенных клеток
print(sum(status.values()))
