. Очень . Поликарп сделал робота, который может перемещаться по координатной плоскости.
Робот может выполнять четыре команды:
• команда «L» — в этом случае робот перемещается из текущей точки (x, y) в точку
(x − 1, y);
• команда «U» — в этом случае робот перемещается из текущей точки (x, y) в точку
(x, y + 1);
• команда «R» — в этом случае робот перемещается из текущей точки (x, y) в точку
(x + 1, y);
• команда «D» — в этом случае робот перемещается из текущей точки (x, y) в точку
(x, y − 1).
Поликарп решил, что даст своему роботу n команд, и записал их в строку s. Изначально
робот находится в точке (0, 0).
Вы можете произвольным образом переставить команды в строке s.
Перед вами стоит задача определить максимально возможное количество раз, когда
робот будет возвращаться в свое начальное положение.
Обратите внимание, вам нужно учесть только возвращения в точку (0, 0), изначальное
нахождение робота в точке (0, 0) до выполнения команд не учитывается в ответе.
Формат входных данных
В первой строке следует целое число n (2 6 n 6 200 000) — количество команд.
Во второй строке следует строка s, состоящая из n символов «L», «U», «R» или «D».
Формат выходных данных
Выведите максимально возможное количество раз, когда робот будет возвращаться в
свое начальное положение, если вы можете переставить команды в строке s произвольным
образом.
Примеры:
14
LRRULRDUDDRLDR 5
4
LDLD 0
13
LDLRULDLLURDL 4
Векторное же графическое изображение формируется из линий, прямоугольников, треугольников, квадратов и т.д., которые сохраняются в памяти компьютера с математических формул. Используется для сохранения четких контуров изображений; создания рисунков и различных графических объектов.
Я руками за 5 дней делаю 5 коробок, и на 6-ой день покупаю духовку.
Руками и духовкой я делаю 2 коробки в день, за 5 дней - 10 коробок.
На 6-ой день я покупаю вторую духовку.
Руками и 2-мя духовками я за 5 дней делаю 15 коробок, и на 6-ой день покупаю 3-ью духовку.
И так далее. Чтобы купить очередную духовку, я работаю 5 дней, а на 6-ой день ее покупаю, и у меня печенья не остается совсем.
То есть, после покупки каждой духовки я начинаю всё с нуля.
Главное - понять, когда нужно остановиться покупать духовки и начать уже копить печенье на складе.
Итак, подведем итоги:
1) На покупку каждой духовки мы тратим 6 суток и начинаем с нуля.
2) Имея n духовок, мы делаем 584 коробок печенья за
trunc(584/(n+1)) + 1 дней, где trunc(x) = [x] - это целая часть x.
3) Всего мы тратим времени T(n) = 6n + trunc(584/(n+1)) + 1 --> min
Минимум функции trunc(584/(n+1)) совпадает с минимумом 584/(n+1)
T(n) = 6n + 584/(n+1) + 1 --> min
T'(n) = 6 - 584/(n+1)^2 = (6(n+1)^2 - 584) / (n+1)^2 = 0
6(n+1)^2 - 584 = 0
(n+1)^2 = 584/6 = 97,33
n + 1 = √97,33 ~ 9,86 = 10
n = 9
Значит, нужно ограничиться покупкой 9 духовок.
За 6*9 = 54 дня мы их купим, и за 584/10 ~ 59 дней мы соберем нужное количество коробок на складе.
Всего мы истратим 54 + 59 = 113 дней.