Олимпиадный тренинг

Задача . I. Ковбой Беблоп и его компьютер


Задача

Темы: геометрия *2800

Ковбой Беблоп — смешной маленький мальчик, который любит сидеть за компьютером. Откуда то у него взялись два эластичных обруча в форме двумерных многоугольников, не обязательно выпуклых. Поскольку на его космическом корабле нет гравитации, то обручи спокойно висят в воздухе (в трёхмерном пространстве). Поскольку обручи очень эластичные, Беблоп может растягивать их, поворачивать, переносить или укорачивать их рёбра столько сколько захочет.

Для обоих обручей вам дано количество вершин и координаты каждой вершины, определяемые тремя числами x, y и z. Вершины даны в порядке обхода: вершина 1 соединена с вершиной 2, вершина 2 соединена с вершиной 3 и так далее, последняя вершина снова соединена с первой. Два обруча считаются зацепленными, если невозможно развести их на бесконечно большое расстояние только изменяя длины рёбер и перемещая их, но не пересекая ни по отрезкам, ни по вершинам — также как две цепочки. Изначально рёбра многоугольников не пересекаются и не касаются.

Для упрощения, скажем что два многоугольник сильно-зацеплены, если рёбра одного из многоугольников пересекают площадь другого в двух различных направлениях (сверху вниз и снизу вверх в плоскости определяемой этим многоугольником) различное количество раз.

Ковбой Беблоп обожает свои обручи и хотел бы знать, являются ли они сильно-зацепленными или нет. Поскольку он занят игрой со своей собакой, он просит вас определить ответ.

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

В первой строке входных данных записано целое число n (3 ≤ n ≤ 100 000) — количество сторон в первом многоугольнике. В каждой из последующих n строк содержатся три целых числа x, y и z ( - 1 000 000 ≤ x, y, z ≤ 1 000 000) — координаты вершин в порядке обхода. В следующей строке записано число m (3 ≤ m ≤ 100 000) — количество вершин во втором прямоугольнике, после чего следуют m строк, описывающих вершины в аналогичном первому прямоугольнику формате.

Гарантируется, что оба прямоугольника не содержат самопересечений и что соответствующие ломаные не пересекаются и не касаются. Дополнительно гарантируется, что никакие три последовательные вершины одного многоугольника не лежат на одной прямой.

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

Выведите «YES» или «NO», в зависимости от того являются ли два многоугольника сильно-зацепленными или нет.

Примечание

На картинке ниже, два многоугольника являются сильно-сцепленными, поскольку рёбра вертикального многоугольника пересекаются поверхность горизонтального один раз в одно направлении и ноль раз в другом. Обратите внимание, что в общем случае многоугольники не обязательно параллельны какой-либо из плоскостей xy-, xz- или yz-.


Примеры
Входные данныеВыходные данные
1 4
0 0 0
2 0 0
2 2 0
0 2 0
4
1 1 -1
1 1 1
1 3 1
1 3 -1
YES

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w644
Комментарий учителя