Бесконечная в обе стороны полоса ширины 1 разбита на клетки размера 1 x 1. В одной из них находится робот, который может двигаться из одной клетки в другую (на рисунке робот обозначен квадратиком). Его перемещения определяются программой, каждая команда в которой - это одна из трех больших латинских букв: L, R, S. Выполняя команду L, робот перемещается на одну клетку влево, команду R - на одну клетку вправо, а S - остается в той же самой клетке. Выполнение программы означает последовательное выполнение всех команд, записанных в ней.
Напишите программу, которая определит сколько различных клеток посетит робот.
Программа для робота - строка из символов L, R, S. Программа состоит не более чем из 10000 команд.
Вывести количество различных клеток, которые посетит робот, выполняя свою программу.
#include <stdio.h>
int main()
{
unsigned char temp;
long index = 10000;
bool m[20000];
for (int i = 0; i<20000; i++) m[i] = false;
m[index] = true;
do
{
scanf("%c", &temp);
if (temp != '\n')
{
if (temp == 'L') m[++index] = true;
if (temp == 'R') m[--index] = true;
}
} while (temp != '\n');
index = 0;
for (int i = 0; i<20000; i++) if (m[i]) index++;
printf("%d\n", index);
}
Есть решение которого нет на сайте? Пиши admin@devexe.top