Universal Cup Judging System

Universal Cup

حد الوقت: 1 s حد الذاكرة: 1024 MB
الإحصائيات

Ci sono $n$ punti $P_1, P_2, \ldots, P_n$ nel piano. VegiCat ha $q$ query per te. Ogni query fornisce un punto $P$.

problem_23596_6ec10fe5fc25c17116e0feb55e9f3d78.png

Per ogni query, costruisci un poligono semplice usando alcuni dei punti dati come suoi vertici. Il poligono deve contenere $P$ strettamente al suo interno e avere il minimo numero di vertici. Se non esiste alcun poligono del genere, stampa $-1$.

Un poligono semplice è una spezzata chiusa con almeno tre vertici distinti. I lati adiacenti si intersecano solo nel loro estremo comune, e i lati non adiacenti non si intersecano.

problem_23596_a5610273068183d75d3104e4c9c1d828.png

Esempi di poligoni semplici e non semplici

Input

La prima riga contiene un intero $T$ ($1 \le T \le 2 \cdot 10^4$), il numero di casi di test. Segue la descrizione dei casi di test.

La prima riga di ogni caso di test contiene due interi positivi $n$ e $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), che rappresentano rispettivamente il numero di punti dati e il numero di query.

La $i$-esima delle successive $n$ righe contiene due interi $x_i$ e $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), le coordinate di $P_i$. È garantito che questi $n$ punti siano a due a due distinti.

Ciascuna delle successive $q$ righe contiene due interi $x$ e $y$ ($-10^9 \le x, y \le 10^9$), le coordinate del punto richiesto nella query.

È garantito che la somma di $n$ su tutti i casi di test non superi $10^5$.

È garantito che la somma di $q$ su tutti i casi di test non superi $10^5$.

Output

Per ogni query, se non esiste alcun poligono che soddisfi i requisiti, stampa un intero $-1$ su una riga.

Altrimenti, stampa un poligono con il minimo numero di vertici. Sulla prima riga, stampa un intero $m$, il numero di vertici.

Sulla seconda riga, stampa $m$ interi $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), gli indici dei vertici in ordine. Il poligono è $P_{a_1} P_{a_2} \ldots P_{a_m}$. I vertici possono essere stampati in senso orario oppure antiorario.

Gli indici devono essere a due a due distinti, e il poligono stampato deve essere semplice e contenere il punto richiesto strettamente al suo interno. Se ci sono più soluzioni, stampane una qualsiasi.

Esempi

Input 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

Output 1

3
4 1 2
-1

Nota

Nel primo caso di test, il triangolo $P_4 P_1 P_2$ contiene il punto richiesto $P = (0, 0)$ strettamente al suo interno. Poiché un poligono ha almeno tre vertici, questo triangolo ha il minimo numero di vertici.

Nel secondo caso di test, l'unico poligono possibile è il triangolo $P_1 P_2 P_3$. Il punto richiesto $P = (0, 0)$ giace sul lato $P_2 P_3$, quindi la risposta è $-1$.

problem_23596_b7e688351da0758f2f7d7d3948442e24.png

Illustrazioni dei casi di test di esempio

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.