EduBrick

O. Сумма Минковского

3000 мс · 256 МБ · всё или ничего

Даны два выпуклых многоугольника AA и BB, вершины перечислены против часовой стрелки. Постройте их сумму Минковского

A⊕B={ a+b : a∈A, b∈B }.A \oplus B = \{\, a + b \ : \ a \in A, \ b \in B \,\}.

Это снова выпуклый многоугольник. Выведите его вершины: никакие три подряд идущие не должны лежать на одной прямой, обход — против часовой стрелки, начиная с вершины с наименьшей координатой xx (при равных — с наименьшей yy).

Формат ввода

В первой строке — число nn (1≤n≤1051 \le n \le 10^5) и nn строк с вершинами AA. Затем число mm (1≤m≤1051 \le m \le 10^5) и mm строк с вершинами BB. Координаты целые, по модулю не больше 10810^8.

Формат вывода

В первой строке выведите число вершин суммы, в следующих строках — их координаты в порядке обхода.

Примеры

ввод
4
0 0
2 0
2 2
0 2
4
0 0
1 0
1 1
0 1
вывод
4
0 0
3 0
3 3
0 3
ввод
1
0 0
3
0 0
3 0
0 3
вывод
3
0 0
3 0
0 3
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.