eolymp
bolt
Try our new interface for solving problems
Məsələlər

Расстояние до многоугольника

Расстояние до многоугольника

На плоскости дан выпуклый многоугольник. Вам необходимо вычислить результат выполнения заданного количества запросов.

Каждый запрос представляет собой координаты некоторой точки на плоскости. Результатом выполнения запроса является расстояние от этой точки до многоугольника (растояние от заданной точки до многоугольника - это минимальное расстояние от этой точки до какой-либо точки внутри или на границе многоугольника).

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

В первой строке дано число n (3n4000) - количество вершин многоугольника.

Далее в n строках перечислены координаты вершин многоугольника в порядке обхода против часовой стрелки. Никакие три вершины не лежат на одной прямой. Каждая вершина задается целочисленными координатами x, y (-15000x, y15000).

В следующей строке даны пять целых чисел: q, a, b, c, d (1q106, 0a, b, c, d15000) - количество запросов и коэффициенты пересчета, позволяющие вычислить координаты последующего запроса по координатам и результату выполнения предыдущего.

В последней строке входных данных записаны два целых числа x1, y1 (-15000x1, y115000) - координаты точки первого запроса.

Координаты точек каждого из последующих запросов вычисляются через координаты и результат выполнения предыдущих запросов следующим образом. Если в i-ом запросе координаты точки были xi, yi, а ответ на запрос равнялся di, то i + 1-ым запросом будет точка с координатами

xi+1 = ((xi + 15000) * (round(di) + a) + b) % 30001 - 15000;

yi+1 = ((yi + 15000) * (round(di) + c) + d) % 30001 - 15000;

Округление round(di) ведется к ближайшему целому.

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

Выведите единственное число - ответ на последний запрос с абсолютной или относительной погрешностью 10-8.

Zaman məhdudiyyəti 8 saniyə
Yaddaşı istafadə məhdudiyyəti 256 MiB
Giriş verilənləri #1
4
0 0
5000 0
5000 3000
0 3000
3 13 17 19 21
-1 -1
Çıxış verilənləri #1
9407.8057484197670
Müəllif А. Миланин
Mənbə 2011 ACM, Ukraine, First Stage, April 9