QOJ.ac

QOJ

시간 제한: 2.0 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓

#15305. Doo Doo Doo

통계

Hyacinthia хочет добраться до центра «Руин конца облаков» (Eye of Dawn), чтобы найти добычу, но на её пути стоят $n$ стен. $i$-я стена представляет собой окружность с центром в начале координат $(0, 0)$ и радиусом $r_i$. На стене есть $k_i$ дверей, и координаты $j$-й двери задаются как $\left(r_i \cdot \cos \left(\frac{2\pi}{M} \cdot p_{i,j}\right), r_i \cdot \sin \left(\frac{2\pi}{M} \cdot p_{i,j}\right)\right)$. Толщина стен и ширина дверей пренебрежимо малы, и Hyacinthia не может перелетать через стены.

Hyacinthia хочет задать вам $m$ вопросов. Каждый раз она сообщает свою начальную точку, и вам нужно ответить, каково кратчайшее расстояние до центра. Гарантируется, что начальная точка находится с внутренней стороны стены и вплотную к её поверхности.

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

Первая строка содержит два целых числа $n, m$ ($2 \le n \le 2 \cdot 10^5, 1 \le m \le 2 \cdot 10^5$), представляющих количество стен и количество запросов.

Следующие $n$ строк описывают каждую стену. Каждая строка начинается с двух целых чисел $r_i, k_i$ ($1 \le r_i \le 10^8, 0 \le k_i \le 2 \cdot 10^5$), означающих, что $i$-я стена — это окружность радиуса $r_i$ с $k_i$ дверями. Далее следуют $k_i$ целых чисел $p_{i,1}, p_{i,2}, \dots, p_{i,k_i}$, представляющих координаты $j$-й двери $\left(r_i \cdot \cos \left(\frac{2\pi}{M} \cdot p_{i,j}\right), r_i \cdot \sin \left(\frac{2\pi}{M} \cdot p_{i,j}\right)\right)$, где $M = 3.6 \cdot 10^8$. Гарантируется, что $0 \le p_{i,1} < p_{i,2} < \dots < p_{i,k_i} < M$, $k_n = 0$, $\sum_{i=1}^n k_i \le 2 \cdot 10^5$ и $1 \le r_1 < r_2 < \dots < r_n \le 10^8$.

Следующие $m$ строк содержат по два целых числа $t_i, q_i$, указывающих, что если Hyacinthia начинает изнутри $t_i$-й стены в точке $\left(r_{t_i} \cdot \cos \left(\frac{2\pi}{M} \cdot q_i\right), r_{t_i} \cdot \sin \left(\frac{2\pi}{M} \cdot q_i\right)\right)$, то каково кратчайшее расстояние до начала координат (если добраться невозможно, выведите «-1»).

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

Для каждого запроса выведите одну строку с числом с плавающей запятой, представляющим ответ. Если добраться невозможно, выведите «-1». Ответ считается верным, если относительная или абсолютная погрешность не превышает $10^{-6}$ по сравнению со стандартным ответом.

Примеры

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

3 4
2 2 0 90000000
5 0
8 0
1 114514
2 0
2 180000000
3 233

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

2.0000000000
5.0000000000
7.4056093871
-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.