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

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

Итак

locomotive

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

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

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

===========================

upd. Аккуратно, в комментариях тоже есть решение 🙂

2 thoughts on “Задача про Паровозики”

Leave a Reply

Your email address will not be published. Required fields are marked *