Задача про Паровозики

One minute read in Competitions

Задачу эту я услышал сегодня на Ciklum Java Saturday (мини-конференция)

Итак

Exercise Description

У нас имеется бесконечная координатная прямая. На ней два паровоза и между ними на неизвестном расстоянии находится станция.

Каждый паровоз имеет свой процессор и исполняет команды:

  • 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)