Задача про Паровозики
One minute read in ThoughtsЗадачу эту я услышал сегодня на Ciklum Java Saturday (мини-конференция)
Итак
У нас имеется бесконечная координатная прямая. На ней два паровоза и между ними на неизвестном расстоянии находится станция.
Каждый паровоз имеет свой процессор и исполняет команды:
- L – передвинуться в левую ячейку
- R – передвинуться в правую ячейку
- if (station) {L/R/goto(n)} – если поезд находится на станции то выполнить единственную команду
- goto(n) – перейти на выполнение n-ой строки исходного кода
Задача: столкнуть два паровоза используя данные команды. При этом программа одна и та же для каждого паровоза т.е. вы пишете одну программу, которая исполняется параллельно на обоих паровозах с одинаковой частотой.
Пример программы:
1. L
2. R
3. if (station) {goto(4)}
4. goto(1)
Которая ничего не делает ☺️
Решение:
1. L
2. if (station) {goto(4)}
3. goto (1)
4. L
5. goto (4)