Последние новости / Технологии / habrahabr.ru /

habrahabr.ru Наверняка многие знают задачу про 2х роботов.

Напомню условие:

Есть 2 робота.
Их на парашютах сбрасывают на дискретную, бесконечную прямую.
Изначально неясно какое между роботами расстояние и кто слева, а кто справа.

Надо написать программу для роботов, которая будет гарантировать их встречу.
Программа одинаковая для обоих роботов, коммуникации между роботами нет.

Допустимые операторы:
moveLeft // 1 шаг влево
moveRight // 1 шаг вправо
goto //перейти на n-ую строчку программы
if (startPoint) goto //проверить есть ли под ногами парашют. (неважно чей, реакция как на свой, так и на чужой) если true, переходим на n-ую строчку программы.

Я всю жизнь думал что есть только одно решение (пока не буду его говорить, может кто задачу 1й раз видит).
Но недавно мне сказали что моё решение неправильное 0_о, мотивировав это тем, что
каждая операция выполняется мгновенно, поэтому моё решение не канает.

Может тут кто подскажет решение, которое канает при доп ограничении «мгновенное выполнение комманд»?
Просто я как-то видимо слишком для этого тупой…

upd: если роботы оказываются в одной клетке, то всё — победа. Лишний if только загромождает (в данном случае) код, соль в алгоритме.