eolymp
bolt
Try our new interface for solving problems
Problems

Count Online

Count Online

Вам дано множество точек на плоскости. Нужно уметь отвечать на два типа запросов: \begin{itemize} \item \textbf{? x_1 y_1 x_2 y_2} --- сказать, сколько точек лежит в прямоугольнике \[\textbf{x_1}..\textbf{x_2}\]×\[\textbf{y_1}..\textbf{y_2}\]. Точки на границе и в углах тоже считаются. \textbf{x_1} ≤ \textbf{x_2}, \textbf{y_1} ≤ \textbf{y_2}. \item \textbf{+ x y} --- добавить в множество точку (\textbf{x + res \% 100}, \textbf{y + res \% 101}). Где \textbf{res} --- ответ на последний запрос вида \textbf{?}, а \textbf{\%} --- операция взятия по модулю. \end{itemize} \InputFile Число точек \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{50000}). Далее \textbf{N} точек. Число запросов \textbf{Q} (\textbf{1} ≤ \textbf{Q} ≤ \textbf{100000}). Далее \textbf{Q} запросов. Все координаты от \textbf{0} до \textbf{10^9}. \OutputFile Для каждого запроса \textbf{GET} выведите одно целое число --- количество точек внутри прямоугольника.
Time limit 6 seconds
Memory limit 256 MiB
Input example #1
5
0 0
1 0
0 1
1 1
1 1
9
? 0 1 1 2
+ 1 2
+ 2 2
? 1 0 2 2
? 0 0 0 0
+ 3 3
? 3 3 3 3
? 4 3 4 3
? 4 4 5 5
Output example #1
3
3
1
0
0
3

Example description: На самом деле добавлялись точки (4, 5), (5, 5), (4, 4).