Ограничения: время – 200ms/1000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
![width:200px;float:right|Робот](50663.png) Компания проводит испытания робота-доставщика "Колобок". Роботу задается программа,
состоящая из последовательности трёх команд: "``F``" -- двигаться вперёд на 1 метр, "``+``" -- повернуть на 90 градусов по
часовой стрелке, "``-``" -- повернуть на 90 градусов против часовой стрелки. Первоначальная позиция
робота находится в начале координат (0,0), а испытатель должен поставить робота в направлении оси X.
На очередном тесте робот потерялся, то ли потому, что испытатель поставил робота в направлении оси Y или
против оси X, то ли потому, что при загрузке программе было сделано несколько ошибок. Ошибкой считается замена команды "``F``", "``+``" или "``-``" на любую не совпадающую команду "``F``", "``+``" или "``-``"
Определите по заданной программе и количеству возможных ошибок, насколько далеко робот мог оказаться от
начала координат после выполнения программы. Расстояние будем вычислять как `|x|+|y|`, где `x`,`y` -- координаты точки, в которой
робот мог оказаться после выполнения программы.
Первая строка ввода содержит последовательность из символов "``F``", "``+``" или "``-``", длиной от 2 до 2000.
Вторая строка содержит одно целое число `K` от 0 до 2 -- количество ошибок, сделанных при загрузке программы в память робота.
Вывести одно целое число -- максимальное значение для суммы модулей координат точки, в которой может оказаться робот
после выполнения программы.
```sample Пример ввода 1
FF+F
0
```
```sample Пример вывода 1
3
```
```sample Пример ввода 2
FF+F
1
```
```sample Пример вывода 2
4
```
```sample Пример ввода 3
FF
2
```
```sample Пример вывода 3
0
```
*Пояснение к примерам*
В примере 1 в программе нет ошибок. В зависимости от начального направления робот может оказаться
в точках (2, -1), (1, 2) или (-2, 1). Во всех случаях сумма модулей координат равна 3.
![width:200px|Робот](50664.png)
В примере 2 в программе ровно 1 ошибка. Если одна из "``F``" была заменена на "``+``" или "``-``",
то робот уедет не более чем на 2 метра от начала координат. Если при загрузке команда "``+``" была заменена на "F",
то робот окажется в точке (4,0), (0,4) или (-4,0) -- на расстоянии 4 от начала координат. Таким образом максимум равен 4.
В примере 3 в программе ровно 2 ошибки. Обе команды "``F``" были заменены на "``+``" или "``-``". После выполнения любой из
программ "``+-``", "``-+``", "``++``", "``--``" робот остановится в точке (0,0) и максимум будет равен 0.
*Система оценки и описание подзадач*
||.u|Подзадача 1 (10 баллов)||
`K=0`, длина строки до 50 символов
В этой подзадаче 2 теста, каждый тест оценивается в 5 баллов.
||.u|Подзадача 2 (10 баллов)||
`K=0`, длина строки до 2000 символов
Необходимые подзадачи: 1.
В этой подзадаче 2 теста, каждый тест оценивается в 5 баллов.
||.u|Подзадача 3 (20 баллов)||
`K=1`, длина строки до 200 символов
Необходимые подзадачи: 1, 2.
В этой подзадаче 4 теста, каждый тест оценивается в 5 баллов.
||.u|Подзадача 4 (20 баллов)||
`K=1`, длина строки до 2000 символов
Необходимые подзадачи: 1, 2, 3.
В этой подзадаче 4 теста, каждый тест оценивается в 5 баллов.
||.u|Подзадача 5 (20 баллов)||
`K=2`, длина строки до 200 символов
Необходимые подзадачи: 1, 2, 3, 4.
В этой подзадаче 4 теста, каждый тест оценивается в 5 баллов.
||.u|Подзадача 6 (20 баллов)||
`K=2`, длина строки до 2000 символов
Необходимые подзадачи: 1, 2, 3, 4, 5.
В этой подзадаче 4 теста, каждый тест оценивается в 5 баллов.
Во всех подзадачах баллы за каждый тест начисляются независимо. По запросу сообщается результат окончательной проверки на каждом тесте.
Хотя примеры ввода 2 и 3 не соответствует ограничениям подзадач 1 и 2, ваше решение должно давать правильный ответ
и на этих примерах для выполнения дальнейшего тестирования.