Выборка из классного списка
Условие
В школе распечатали список из n учеников (они пронумерованы от 1 до n сверху вниз). Дежурный водит пальцем по списку и выполняет команды учителя.
Палец всегда указывает на одного из ещё не вычеркнутых учеников (если такие есть). В начале палец стоит на ученике №1.
Команды бывают трёх видов:
L— попытаться сдвинуть палец на строку вверх. Если выше нет невычеркнутых учеников, палец остаётся.R— попытаться сдвинуть палец на строку вниз. Если ниже нет невычеркнутых учеников, палец остаётся.X— вычеркнуть ученика, на которого сейчас указывает палец. После этого палец переходит на ближайшего невычеркнутого ученика ниже. Если ниже никого нет — переходит на ближайшего выше. Если список стал пустым, палец больше ни на кого не указывает.
Нужно вывести, какие номера остались в списке после выполнения всех команд.
Формат ввода
В первой строке два целых числа n и q — количество учеников и количество команд. Во второй строке строка из q символов, каждый из которых один из L, R, X.
Формат вывода
В первой строке выведите k — сколько учеников осталось. Во второй строке выведите их номера в порядке сверху вниз, через пробел. Если k = 0, выведите пустую строку.
Ограничения
1 ≤ n ≤ 2000001 ≤ q ≤ 200000
Пример
Ввод:
5 7
RRXLRXX
Вывод:
2
1 2Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- На программиста по олимпиаде: путь по классам — что даёт диплом, куда с ним берут на ИТ-направления и почему решает 9 класс
- Вердикты судьи: WA, TLE, RE, PE, CE — что значит каждый код проверяющей системы и где искать причину