И снова Вадим оказался на бесконечном поле, которое представимо в виде плоскости с декартовыми координатами. В самом центре поля, в точке O с координатами (0; 0), он увидел древний манускрипт. Когда он прикоснулся к нему, на поле засветились чарующим синим цветом M рун, а также на N отрезках внезапно поднялась трава, причём эти отрезки не пересекались. Вадим сразу понял, что нужно сделать, однако, сделав один шаг к одной из рун, всё пропало.
Внимательно прочитав манускрипт, Вадим осознал, что ему достаточно сосчитать количество рун, которые ему видны. Как известно, у Вадима угол обзора 90∘, а изначально он смотрит по направлению вектора s (другими словами, Вадим видит всё между направлениями RO−45∘ s и RO45∘ s). При этом поднявшаяся трава закрывает обзор на руны. Даже если руна попала на отрезок, её не видно. Руны же не закрывают обзор на другие руны, даже если находятся в одном и том же месте. Сосчитать руны можно за минуту, однако в следующую минуту произойдёт одно из двух событий:
-
Одна руна телепортируется в другое место на поле.
-
Вадим поворачивается в направлении вектора v.
Само собой, после каждого из событий, которых будет ровно Q, необходимо сосчитать руны заново. Помогите Вадиму это сделать.
Исходные данные
В первой строке даются два целых числа sx и sy — координаты вектора, по направлению которого Вадим смотрит изначально.
Во второй строке даётся целое число N — количество отрезков травы (1 ≤ N ≤ 105).
В следующих N строках описываются отрезки травы четырьмя числами ax, ay, bx и by. Концы отрезков различны.
В следующей строке даётся целое число M — количество рун на поле (1 ≤ M ≤ 105).
В следующих M строках описываются координаты каждой из рун двумя числами rx и ry. Все руны пронумерованы от 1 до M в порядке ввода.
В следующей строке даётся целое число Q — количество событий (1 ≤ Q ≤ 105).
В следующих Q строках описываются события в одном из двух форматов:
-
T i x y — руна под номером i телепортируется в точку (x; y).
-
R x y — Вадим поворачивается в направлении вектора (x; y).
Все данные координаты целые и не превосходят по модулю 109.
Гарантируется, что если обозначить точку (0; 0) за O и взять любой конец отрезка P и любой другой конец отрезка или точку, где может быть руна, Q, то луч OP не равен лучу OQ. Также никакая точка из ввода не совпадает с O, и O не лежит ни на одном из отрезков.
Результат
Вначале выведите, сколько Вадим видит рун изначально, а затем Q чисел — количества рун, которые Вадим видит после каждого события.
Пример
| исходные данные | результат |
|---|
1 0
4
-4 4 0 6
2 -1 1 4
-1 2 3 -4
-2 1 -3 -2
4
-1 0
-2 3
1 -1
-1 -3
7
R 0 -1
R -2 -2
R -2 2
R 0 1
R -2 1
T 1 -3 0
T 2 -2 5
| 0
1
2
2
1
2
1
0
|
Автор задачи: Вадим Баринов
Источник задачи: Квалификационный тур Уральского регионального чемпионата ICPC 2026: отбор УрФУ