Олимпиадный тренинг

Задача . C. Вася и робот


У Васи есть робот, расположенный на бесконечной плоскости. Изначально робот находится в стартовой клетке \((0, 0)\). Робот может выполнять команды. Существует четыре основных команды, доступные для выполнения:

  • U — перейти из клетки \((x, y)\) в \((x, y + 1)\);
  • D — перейти из клетки \((x, y)\) в \((x, y - 1)\);
  • L — перейти из клетки \((x, y)\) в \((x - 1, y)\);
  • R — перейти из клетки \((x, y)\) в \((x + 1, y)\).

У Васи есть последовательность из \(n\) команд. Вася хочет, чтобы после обработки этой последовательности робот оказался в клетке \((x, y)\).

Вася хочет заменить команды так, чтобы минимизировать длину измененного подотрезка. Длина измененного подотрезка рассчитывается как \(maxID - minID + 1\), где \(maxID\) — максимальный индекс измененной команды, а \(minID\) — минимальный индекс измененной команды. Например, если Вася заменил последовательность RRRRRRR на RLRRLRL, то он изменил команды с индексами \(2\), \(5\) и \(7\), а длина измененного подотрезка равна \(7 - 2 + 1 = 6\). А если Вася заменил последовательность DDDD на DDRD, то длина измененного подотрезка равна \(1\).

Если последовательность команд не изменилась, то длина измененного подотрезка равна \(0\). Изменение команды — это замена команды на другую команду (возможно, того же самого типа); нельзя вставлять новые команды в последовательность или удалять их.

Помогите Васе! Сообщите ему минимальную длину подотрезка, после замены которого робот дойдет из клетки \((0, 0)\) в клетку \((x, y)\), или сообщите, что не существует ни одного подходящего подотрезка.

Входные данные

В первой строке записано одно число \(n~(1 \le n \le 2 \cdot 10^5)\) — длина последовательности команд.

Во второй строке записана сама последовательность — строка из \(n\) символов. Каждый символ — U, D, L или R.

В третьей строке записаны два числа \(x, y~(-10^9 \le x, y \le 10^9)\) — координаты клетки, в которую должен попасть робот.

Выходные данные

В единственной строке выведите минимальную длину подотрезка, после замены которого робот дойдет из клетки \((0, 0)\) в клетку \((x, y)\). Если же не существует ни одного подходящего подотрезка, в единственной строке выведите \(-1\).

Примечание

В первом тестовом примере измененная последовательность выглядит следующим образом: LULUU. Таким образом, длина измененного подотрезка равна \(3 - 1 + 1 = 3\).

Во втором тестовом примере изначальная последовательность команд приводит робота в точку \((x, y)\), поэтому длина измененного подотрезка равна \(0\).

В третьем тестовом примере робот никак не сможет попасть в точку \((x, y)\).


Примеры
Входные данныеВыходные данные
1 5
RURUU
-2 3
3
2 4
RULR
1 1
0
3 3
UUU
100 100
-1

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя