Ограничения: время – 2000ms/4000ms, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Для наблюдения за пингвинами Том установил в ущелье камеры.
Время от времени с камер поступает информация о передвижениях пингвинов,
и иногда Том делает запросы о количестве стай пингвинов на некотором участке ущелья.
Стаей считается последовательность пингвинов без промежутков, отделенная пустым пространством от других стай.
Первая строка ввода содержит два целых числа `n` (длина ущелья) и `m` (`1\ ≤\ n\ ≤\ 100000`,`1\ ≤\ m\ ≤\ 100000`).
Далее следует `m` строк, содержащих хронологически упорядоченную последовательность запросов Тома
и поступлений информации с камер.
Первым символом в строке указывается символ '?', '*' или '.', за
которым через пробел следуют два числа `p_1` и `p_2` (`1\ ≤\ p_1\ ≤\ p_2\ ≤\ n`), задающих участок ущелья.
Cимвол '?' означает запрос Тома о количестве стай пингвинов на участке.
Cимвол '*' означает, что все позиции на заданном участке заполнились пингвинами,
символ '.' означает, что все позиции на заданном участке стали свободными.
Первоначально все позиции в ущелье свободны.
Для каждого запроса Тома вывести на отдельной строке количество стай пингвинов, которые видны полностью
или частично на заданном участке ущелья.
Пример ввода
10 5
* 1 7
. 3 5
? 2 7
* 4 4
? 1 10