Universal Cup Judging System

Universal Cup

Time Limit: 1 s Memory Limit: 1024 MB
Statistics

На площині задано $n$ точок $P_1, P_2, \ldots, P_n$. VegiCat має до вас $q$ запитів. У кожному запиті задається точка $P$.

problem_23596_6ec10fe5fc25c17116e0feb55e9f3d78.png

Для кожного запиту побудуйте простий многокутник, використовуючи деякі із заданих точок як його вершини. Многокутник повинен містити точку $P$ суворо всередині себе і мати мінімальну кількість вершин. Якщо такого многокутника не існує, виведіть $-1$.

Простий многокутник — це замкнена ламана принаймні з трьома різними вершинами. Сусідні ребра перетинаються лише в їхній спільній кінцевій точці, а несусідні ребра не перетинаються.

problem_23596_a5610273068183d75d3104e4c9c1d828.png

Приклади простих і непростих многокутників

Вхідні дані

Перший рядок містить ціле число $T$ ($1 \le T \le 2 \cdot 10^4$) — кількість наборів вхідних даних. Далі йде опис наборів вхідних даних.

Перший рядок кожного набору вхідних даних містить два додатні цілі числа $n$ і $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), що позначають кількість заданих точок і кількість запитів відповідно.

$i$-й із наступних $n$ рядків містить два цілі числа $x_i$ та $y_i$ ($-10^9 \le x_i, y_i \le 10^9$) — координати точки $P_i$. Гарантується, що всі ці $n$ точок попарно різні.

Кожен із наступних $q$ рядків містить два цілі числа $x$ та $y$ ($-10^9 \le x, y \le 10^9$) — координати запитуваної точки.

Гарантується, що сума $n$ за всіма наборами вхідних даних не перевищує $10^5$.

Гарантується, що сума $q$ за всіма наборами вхідних даних не перевищує $10^5$.

Вихідні дані

Для кожного запиту, якщо многокутника, який задовольняє вимоги, не існує, виведіть одне ціле число $-1$ в окремому рядку.

Інакше виведіть многокутник із мінімальною кількістю вершин. У першому рядку виведіть одне ціле число $m$ — кількість вершин.

У другому рядку виведіть $m$ цілих чисел $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$) — індекси вершин по порядку. Многокутник має вигляд $P_{a_1} P_{a_2} \ldots P_{a_m}$. Вершини можна виводити як за годинниковою стрілкою, так і проти неї.

Індекси мають бути попарно різними, а виведений многокутник має бути простим і містити запитувану точку суворо всередині себе. Якщо розв'язків декілька, виведіть будь-який із них.

Приклади

Вхідні дані 1

2
5 1
0 4
-3 0
-3 -3
3 -3
3 0
0 0
3 1
0 4
-3 0
3 0
0 0

Вихідні дані 1

3
4 1 2
-1

Примітка

У першому наборі вхідних даних трикутник $P_4 P_1 P_2$ містить запитувану точку $P = (0, 0)$ суворо всередині себе. Оскільки многокутник має щонайменше три вершини, цей трикутник має мінімальну кількість вершин.

У другому наборі вхідних даних єдиний можливий многокутник — це трикутник $P_1 P_2 P_3$. Запитувана точка $P = (0, 0)$ лежить на стороні $P_2 P_3$, тому відповідь дорівнює $-1$.

problem_23596_b7e688351da0758f2f7d7d3948442e24.png

Ілюстрації до тестових прикладів

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.