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

2227. Геометрический контест

Ограничение времени: 0.5 секунды
Ограничение памяти: 256 МБ
Захар решает геометрический контест имени Вадима Баринова, где ему попалась довольно интересная задача. В ней был дан выпуклый многоугольник на N вершинах в декартовых координатах. Задача была связана с разрезами многоугольника по диагоналям. Захару нужно было провести несколько отрезов, однако он немного сомневался в своих силах, поэтому, помимо отрезов, он произвёл замеры. Формально говоря, Захар совершил Q действий двух типов:
  • Замер: Захар выбирает две вершины многоугольника, проводит между ними диагональ, тем самым он делит многоугольник на две части. Затем он измеряет площади этих двух многоугольников и записывает большую из площадей в листочек.
  • Отрез: Захар выбирает две вершины многоугольника, проводит между ними диагональ, многоугольник также делится на две части. После этого он отрезает и выкидывает ту часть, у которой площадь меньше другой. При равенстве он выкидывает ту часть, у которой есть вершина с порядковым номером меньшим или большим, чем порядковые номера обеих выбранных изначально вершин. Площадь отрезанного многоугольника он записывает в листочек.
Захар провёл все эти действия в самом начале контеста, а сейчас контест уже подходит к концу, а листочек с записями куда-то потерялся. К счастью, Захар помнит все свои действия по типу и номерам вершин, которые он выбирал. Помогите ему восстановить содержимое листочка.

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

В первой строке даны два целых числа N и Q — количество вершин выпуклого многоугольника и количество действий Захара (4 ≤ N ≤ 105, 1 ≤ Q ≤ 105).
В следующих N строках описаны координаты вершин многоугольника в порядке обхода против часовой стрелки двумя целыми числами xi и yi. Гарантируется, что многоугольник выпуклый. Все координаты по модулю не превосходят 109.
В следующих Q строках описаны действия Захара в формате «ti li ri», где ti — тип действия: ‘m’ для замера, ‘c’ для отреза; 1 ≤ li, riN. Гарантируется, что отрезок от вершины li до вершины ri всегда является диагональю, то есть обе эти вершины есть в текущем многоугольнике, а также не описывают одну из сторон этого многоугольника.

Результат

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

Пример

исходные данныерезультат
5 4
2 0
3 1
2 2
0 2
0 0
m 5 3
m 2 4
c 1 3
m 4 1
3.0
4.0
1.0
2.0
Автор задачи: Вадим Баринов