ГеоГра
Алімжан захоплюється різноманітними іграми, і одна з них — ГеоГра. У цій грі ви перебуваєте на площині, а ваша позиція визначається точкою (x, y). На вас полюють вороги з особливими здібностями: маги, воїни та обманщики. Їхня мета — збити Алімжана з пантелику щодо його місцезнаходження, щоб він втратив орієнтацію. Кожен з ворогів може по-різному впливати на позицію Алімжана:
x y - воїн штовхає вас на x вздовж осі OX і на y вздовж осі OY.
a b - маг у точці (0, 0) обертає вас навколо своєї позиції на a * π / b радіан проти годинникової стрілки.
b x y - обманщик відправляє вас у дзеркальний світ: він створює нескінченне дзеркало (лінію), так що Алімжан переходить у своє дзеркальне відображення.
Ваші вороги можуть виконати n дій: A[1]
, A[2]
, ..., A[n]
. Алімжан втомився від цих ігор, тому просить вас відповісти на q запитань: яке його нове положення після виконання операцій A[l]
, ..., A[r]
(саме в цьому порядку), якщо його початкова позиція була (x, y)?
Вхідні дані
Перший рядок містить число n (1 ≤ n ≤ 3 * 10^5
). Наступні n рядків описують n дій - кожна дія починається з типу t операції:
1 x y - дія воїна (|x| ≤ 100, |y| ≤ 100)
2 a b - дія мага (|a| ≤ b ≤ 42)
3 b x y - дія обманщика - дзеркало (лінія) визначається 2 точками (b, 0) і (x, y) (|b|, |x|, |y| ≤ 100).
У (n + 1)-му рядку вказано кількість запитів q (1 ≤ q ≤ 3 * 10^5
).
Наступні q рядків містять запити. Кожен запит задається 4 цілими числами у форматі l r x y (1 ≤ l ≤ r ≤ n).
Вихідні дані
Для кожного з q запитів виведіть остаточну позицію у вигляді двох дійсних чисел. Ваша відповідь вважається правильною, якщо абсолютна або відносна похибка не перевищує 10^(-4)
.