Контроль возврата автономного робота

Просмотр в формате PDF

Submit solution


Очки: 110
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem type
Allowed languages
C++, Python

Первая олимпиада Олмат.Программирование. 23.02.26

Тема: Автономный транспорт Уровень: Новичок

📜 Вторая находка

В ходе цифровых раскопок 20xx года был найден архив древней складской системы. Внутри — фрагменты управляющего кода автономного робота-погрузчика.

Это одна из первых моделей автономного транспорта, применявшихся в распределительных центрах начала XXI века. Робот перемещался по сетке склада, выполняя последовательность команд.

Однако архив повреждён. Осталась лишь строка с командами движения. Неизвестно — вернулся ли робот к точке подзарядки.

Ваша задача — восстановить поведение машины и определить: завершился ли маршрут корректным возвратом в исходную точку.


🧠 Немного о технологии

Автономные складские роботы работают в дискретном пространстве — перемещаются по координатной сетке.

Каждая команда:

  • U — движение вверх
  • D — движение вниз
  • L — движение влево
  • R — движение вправо

Каждое движение изменяет координаты робота на 1 единицу.

Робот начинает движение из точки (0, 0).

Если после выполнения всех команд координаты снова стали (0, 0) — возврат успешен.


📌 А как это применяется ?

Это базовый принцип координатной симуляции — моделирования перемещений объекта в двумерной системе координат.

Такой подход применяется:

  • в робототехнике,
  • в навигационных системах,
  • в моделировании беспилотного транспорта,
  • в игровых движках,
  • в системах складской логистики.

Симуляция — это пошаговое воспроизведение действий объекта по заданным правилам.


⚙️ Как работает такя система в роботах ?

В реальных системах:

  1. Контроллер получает последовательность команд.
  2. Каждая команда изменяет текущее положение робота.
  3. Система отслеживает координаты в реальном времени.
  4. После завершения маршрута проверяется возврат в базовую точку.

Если возврата нет — происходит аварийная сигнализация или корректирующий маршрут.

В программировании эта задача решается с помощью:

  • двух переменных (x и y),
  • последовательной обработки строки,
  • изменения координат в зависимости от символа.

📌 Задача

Дана строка, состоящая из символов U, D, L, R.

Необходимо определить, вернулся ли робот в исходную точку (0, 0) после выполнения всех команд.

Если вернулся — вывести YES. Если нет — вывести NO.


📥 Формат входных данных

Одна строка — последовательность команд движения робота.

Ограничения
  • Длина строки от 1 до 10⁵
  • Строка содержит только символы U, D, L, R

📤 Формат выходных данных

Вывести:

  • YES, если робот вернулся в точку старта
  • NO, если робот не вернулся

📘 Примеры

Пример 1

Входные данные:

UD

Выходные данные:

YES

Пример 2

Входные данные:

LL

Выходные данные:

NO

Пример 3

Входные данные:

URDL

Выходные данные:

YES

Комментарии

Еще нет ни одного комментария.