ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила

Уральская региональная командная олимпиада по программированию 2019

Описание     Задачи     Отправить на проверку     Состояние проверки     Результаты
Соревнование завершено

B. Эксперимент с соком

Ограничение времени: 4.0 секунды
Ограничение памяти: 256 МБ
Саша любит физику. У Саши нет друзей. Неизвестно, связаны ли эти два факта, но Саша очень сильно переживает из-за отсутствия товарищей. Поэтому он решил поразить Вадима своим экспериментом.
Саша живёт на плоскости с декартовой системой координат, поэтому он взял выпуклый многоугольник с n вершинами, пронумерованными от 1 до n, где вершина номер i имеет координаты (xi, yi). Внутрь многоугольника он налил сок, который заполнил всю ёмкость целиком. После чего он принёс его Вадиму, чтобы показать свой эксперимент. Так вышло, что Вадим не любит физику, да и на эксперименты Саши ему было наплевать. Поэтому он взял многоугольник и сделал на одной из его сторон (но не в вершине!) точечную дырку с координатами (x0, y0), из-за чего весь лишний сок вылился через дырку на землю под действием гравитации (гравитация направлена по убыванию координаты y). Но Вадиму было этого мало: он начал поочерёдно медленно поворачивать весь многоугольник вокруг центра координат на углы αi в градусах, из-за чего сока внутри становилось всё меньше и меньше.
Вы увидели всё это, но Вадима уже никто не мог остановить. Однако чтобы успокоить Сашу, Вы можете сообщить ему, сколько оставалось сока после каждого действия Вадима над многоугольником. Жюри надеется, что Вы не монстр и что успокоить Сашу у Вас получится.

Исходные данные

В первой строке дано единственное целое число n — количество вершин многоугольника (3 ≤ n ≤ 105).
В каждой из следующих n строк через пробел даны по два числа xi, yi — координаты вершин многоугольника в порядке обхода против часовой стрелки (−105xi, yi ≤ 105). Координаты даны ровно с тремя знаками после запятой.
В (n+2)-й строке через пробел даны два числа x0, y0 — координаты дырки, сделанной Вадимом (−105x0, y0 ≤ 105). Координаты даны ровно с тремя знаками после запятой.
В (n+3)-й строке вводится целое число q — количество поворотов многоугольника (0 ≤ q ≤ 105).
В последних q строках по одному в строке вводятся числа αi — углы поворота многоугольника против часовой стрелки в градусах (−360 ≤ αi ≤ 360, поворот на −x против часовой стрелки равносилен повороту на x по часовой стрелке). Углы даны в том порядке, в котором Вадим поворачивал многоугольник, ровно с тремя знаками после запятой.
Гарантируется, что многоугольник выпуклый, что никакие три вершины многоугольника не лежат на одной прямой и что дырка находится на стороне многоугольника, но не в вершине.

Результат

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

Пример

исходные данныерезультат
3
-2.000 1.000
1.000 -2.000
4.000 1.000
1.000 1.000
4
45.000
45.000
45.000
45.000
9.000000000
6.750000000
4.500000000
2.250000000
0.000000000

Замечания

Пояснение к примеру
Problem illustration
Автор задачи: Вадим Баринов
Источник задачи: Уральская командная олимпиада по программированию 2019
Чтобы отправить решение этой задачи на проверку перейдите в Архив задач: 2139. Эксперимент с соком