Universal Cup Judging System

Universal Cup

时间限制: 1 s 内存限制: 1024 MB
统计

Na płaszczyźnie danych jest $n$ punktów $P_1, P_2, \ldots, P_n$. VegiCat ma dla ciebie $q$ zapytań. Każde zapytanie podaje punkt $P$.

problem_23596_6ec10fe5fc25c17116e0feb55e9f3d78.png

Dla każdego zapytania skonstruuj wielokąt prosty, używając niektórych z podanych punktów jako jego wierzchołków. Wielokąt musi zawierać punkt $P$ ściśle wewnątrz siebie i mieć minimalną liczbę wierzchołków. Jeśli taki wielokąt nie istnieje, wypisz $-1$.

Wielokąt prosty to zamknięta łamana mająca co najmniej trzy różne wierzchołki. Sąsiednie krawędzie przecinają się wyłącznie w swoim wspólnym końcu, a niesąsiednie krawędzie się nie przecinają.

problem_23596_a5610273068183d75d3104e4c9c1d828.png

Przykłady wielokątów prostych i nieprostych

Wejście

Pierwszy wiersz zawiera liczbę całkowitą $T$ ($1 \le T \le 2 \cdot 10^4$), oznaczającą liczbę przypadków testowych. Poniżej znajduje się opis przypadków testowych.

Pierwszy wiersz każdego przypadku testowego zawiera dwie dodatnie liczby całkowite $n$ oraz $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), oznaczające odpowiednio liczbę podanych punktów oraz liczbę zapytań.

$i$-ty z kolejnych $n$ wierszy zawiera dwie liczby całkowite $x_i$ oraz $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), będące współrzędnymi punktu $P_i$. Gwarantuje się, że te $n$ punktów są parami różne.

Każdy z kolejnych $q$ wierszy zawiera dwie liczby całkowite $x$ oraz $y$ ($-10^9 \le x, y \le 10^9$), będące współrzędnymi punktu z zapytania.

Gwarantuje się, że suma wartości $n$ po wszystkich przypadkach testowych nie przekracza $10^5$.

Gwarantuje się, że suma wartości $q$ po wszystkich przypadkach testowych nie przekracza $10^5$.

Wyjście

Dla każdego zapytania, jeśli nie istnieje wielokąt spełniający wymagania, wypisz w jednym wierszu jedną liczbę całkowitą $-1$.

W przeciwnym razie wypisz wielokąt o minimalnej liczbie wierzchołków. W pierwszym wierszu wypisz jedną liczbę całkowitą $m$, oznaczającą liczbę wierzchołków.

W drugim wierszu wypisz po kolei $m$ liczb całkowitych $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), oznaczających indeksy kolejnych wierzchołków. Wielokątem jest $P_{a_1} P_{a_2} \ldots P_{a_m}$. Wierzchołki mogą zostać wypisane w kolejności zgodnej z ruchem wskazówek zegara lub przeciwnej.

Indeksy muszą być parami różne, a wypisany wielokąt musi być prosty i zawierać punkt z zapytania ściśle wewnątrz siebie. Jeśli istnieje wiele rozwiązań, wypisz dowolne z nich.

Przykłady

Wejście 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

Wyjście 1

3
4 1 2
-1

Uwaga

W pierwszym przypadku testowym trójkąt $P_4 P_1 P_2$ zawiera punkt z zapytania $P = (0, 0)$ ściśle wewnątrz siebie. Ponieważ wielokąt ma co najmniej trzy wierzchołki, ten trójkąt ma minimalną liczbę wierzchołków.

W drugim przypadku testowym jedynym możliwym wielokątem jest trójkąt $P_1 P_2 P_3$. Punkt z zapytania $P = (0, 0)$ leży na krawędzi $P_2 P_3$, więc odpowiedzią jest $-1$.

problem_23596_b7e688351da0758f2f7d7d3948442e24.png

Ilustracje przykładowych przypadków testowych

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.