пʼятницю, 5 лютого 2010 р.

Роботы десантники

Задача: Смысл такой: у нас есть бесконечная шкала целых чисел (представь себе линейку, обе стороны которой расходятся от нуля в бесконечность). На эту линейку на парашютах спускаются два робота-диверсанта, несущих на себе ядерные заряды. Они приземляются одновременно, но в разных точках. Сбрасывают парашюты и начинают действовать, согласно заложенной в них программе. Программа у обоих одна и та же. Она описывает их движение с помощью четырех операторов:

[<метка>]:Left – команда приказывает роботу сделать шаг вправо
[<метка>]:Right – команда приказывает роботу сделать шаг вправо
[<метка>]:GoTo <метка> – команда отсылает робота на указанную строчку кода
[<метка>]:PGoTo <метка> – то же, что и предыдущая команда, но выполняется она только в том случае, если робот находится на точке приземления (своей или другого робота, т.е. в одной из двух точек, где они сбросили парашюты)


На первый взгляд, оба робота должны прыгать по шкале, нисколько не мешая друг другу, однако не в этом наша цель. Помнишь, что они несут ядерный заряд? Значит, надо сделать так, чтобы они рано или поздно встретились и устроили локальный Армагеддон. Соответственно, тебе нужно написать прогу, которая запрограммирует наших железных камикадзе таким образом, чтобы они всё же оказались в одной точке. Важное дополнение: код может использовать только эти четыре оператора, он должен быть как можно короче и, самое главное, имей в виду что каждый оператор выполняется ровно одну секунду, не зависимо от того, передвинется робот или останется на месте.

Немає коментарів:

Дописати коментар

HyperComments for Blogger

comments powered by HyperComments