Codeforces Round 370 (Div. 2) |
---|
Закончено |
Мемори гуляет по декартовой плоскости, начиная в точке начала координат. У неё есть последовательность действий s:
Мемори хочет, чтобы, последовательно исполнив все команды, она снова оказалась в точке начала координат. У неё есть специальный трезубец, который за одно применение может изменить любой символ в строке s на один из символов «L», «R», «U» или «D». Однако пользоваться трезубцем нелегко, поэтому Мемори хочет минимизировать количество его применений или определить, что добиться желаемого невозможно в принципе.
В единственной строке входных данных записана строка s (1 ≤ |s| ≤ 100 000) — последовательность инструкций, которая есть у Мемори.
Если невозможно изменить строку так, чтобы Мемори заканчивала путешествие в точке начала координат, то выведите -1 в единственной строке выходных данных. В противном случае выведите минимальное требуемое количество изменений.
RRU
-1
UDUR
1
RUUR
2
В первом примере Мемори сначала идёт направо, потом снова направо, затем вверх. Можно показать, что эту последовательность инструкций невозможно изменить таким образом, чтобы она возвращала Мемори в начало координат.
Во втором примере Мемори сначала идёт вверх, потом вниз, потом вверх, потом направо. Одним из возможных решений является изменение строки s на «LDUR», для этого потребуется внести только одно изменение.
Название |
---|