e-olymp
Задачи

ГеоИгра

ГеоИгра

Алимжан много играет в интересные игры. Одной из таких игр является ГеоИгра. В этой игре Вы находитесь на плоскости, Ваша позиция описывается точкой (x, y). Есть враги с особыми способностями: маги, воины и обманщики. Их цель - сбить с толку Алимжана по поводу его положения, чтобы он не знал, где он находится. Каждый из них может так или иначе повлиять на позицию Алимжана:

  1. x y - воин стучит и толкает на x вдоль оси OX, и на y вдоль оси OY.

  2. a b - маг в точке (0, 0) вращает Вас вокруг своей позиции на a * π / b радиан против часовой стрелки.

  3. b x y - обманщик отправляет Вас в зеркальный мир: он создает бесконечное зеркало (некую линию), так что Алимжан переходит в свое зеркальное отражение.

Ваши враги могут совершить n действий: A1, A2, ..., An. Алимжан устал от игр, поэтому просит Вас ответить на q вопросов: каково его новое положение после выполнения операций Al, ..., Ar (именно в этом порядке), если его начальное положение (x, y)?

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

Первая строка содержит число n (1n3 * 105). Следующие n строк описывают n действий - каждое действие начинается типом t операции:

1 x y - действие воина (|x| ≤ 100, |y| ≤ 100)

2 a b - действие мага (|a| ≤ b42)

3 b x y - действие обманщика - зеркало (линия) определяется 2 точками (b, 0) и (x, y) (|b|, |x|, |y| ≤ 100).

В (n + 1)-ой строке Вам задано количество запросов q (1q3 * 105).

Следующие q строк содержат запросы. Каждый запрос задается 4 целыми числами в формате l r x y (1lrn).

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

Для каждого из q запросов выведите окончательную позицию в виде двух действительных чисел. Ваш ответ считается правильным, если абсолютная или относительная ошибка не превышает 10-4.

Лимит времени 2 секунды
Лимит использования памяти 256 MiB
Входные данные #1
3
1 -1 2
2 1 2
3 -1 -3 2
3
1 1 5 0
1 2 5 0
1 3 5 0
Выходные данные #1
4.000000 2.000000
-2.000000 4.000000
-5.000000 1.000000
Источник 2019 Fall KBTU OPEN, Задача F