fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. string commands = "РРРРРЛР"; // Пример программы
  7. int position = 0; // Начальная позиция робота
  8. int visited_positions[10000] = {0}; // Массив для отслеживания клеток (макс. 10000 клеток)
  9. int visited_count = 0; // Счётчик уникальных клеток
  10.  
  11. // Сначала добавим начальную позицию
  12. visited_positions[position + 5000] = 1; // Используем смещение, чтобы поддерживать отрицательные индексы
  13. visited_count++;
  14.  
  15. // Проходим по командам
  16. for (int i = 0; i < commands.size(); i++) {
  17. if (commands[i] == 'Л') {
  18. position--; // Перемещение влево
  19. } else if (commands[i] == 'Р') {
  20. position++; // Перемещение вправо
  21. }
  22.  
  23. // Проверяем, посещал ли робот уже эту клетку
  24. if (visited_positions[position + 5000] == 0) { // Смещение для поддержки отрицательных индексов
  25. visited_positions[position + 5000] = 1;
  26. visited_count++; // Увеличиваем счётчик уникальных клеток
  27. }
  28. }
  29.  
  30. // Выводим количество уникальных клеток, которые посетил робот
  31. cout << "Количество уникальных клеток: " << visited_count << endl;
  32.  
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.01s 5276KB
stdin
РРРРРЛР
stdout
Количество уникальных клеток: 1