Universal Cup Judging System

Universal Cup

Limite de temps : 1 s Limite de mémoire : 1024 MB
Statistiques

Il y a $n$ points $P_1, P_2, \ldots, P_n$ dans le plan. VegiCat a $q$ requêtes pour vous. Chaque requête donne un point $P$.

problem_23596_6ec10fe5fc25c17116e0feb55e9f3d78.png

Pour chaque requête, construisez un polygone simple en utilisant certains des points donnés comme sommets. Le polygone doit contenir $P$ strictement à l'intérieur de celui-ci et avoir le nombre minimum de sommets. S'il n'existe aucun polygone de ce type, affichez $-1$.

Un polygone simple est une chaîne polygonale fermée comportant au moins trois sommets distincts. Les arêtes adjacentes ne se coupent qu'en leur extrémité commune, et les arêtes non adjacentes ne se coupent pas.

problem_23596_a5610273068183d75d3104e4c9c1d828.png

Exemples de polygones simples et non simples

Entrée

La première ligne contient un entier $T$ ($1 \le T \le 2 \cdot 10^4$), le nombre de cas de test. La description des cas de test suit.

La première ligne de chaque cas de test contient deux entiers strictement positifs $n$ et $q$ ($3 \le n \le 10^5$, $1 \le q \le 10^5$), représentant le nombre de points donnés et le nombre de requêtes.

La $i$-ème des $n$ lignes suivantes contient deux entiers $x_i$ et $y_i$ ($-10^9 \le x_i, y_i \le 10^9$), les coordonnées de $P_i$. Il est garanti que ces $n$ points sont deux à deux distincts.

Chacune des $q$ lignes suivantes contient deux entiers $x$ et $y$ ($-10^9 \le x, y \le 10^9$), les coordonnées du point de la requête.

Il est garanti que la somme de $n$ sur tous les cas de test ne dépasse pas $10^5$.

Il est garanti que la somme de $q$ sur tous les cas de test ne dépasse pas $10^5$.

Sortie

Pour chaque requête, s'il n'existe aucun polygone satisfaisant les conditions, affichez un entier $-1$ sur une ligne.

Sinon, affichez un polygone ayant le nombre minimum de sommets. Sur la première ligne, affichez un entier $m$, le nombre de sommets.

Sur la deuxième ligne, affichez $m$ entiers $a_1, a_2, \ldots, a_m$ ($1 \le a_i \le n$), les indices des sommets dans l'ordre. Le polygone est $P_{a_1} P_{a_2} \ldots P_{a_m}$. Les sommets peuvent être affichés dans le sens horaire ou antihoraire.

Les indices doivent être deux à deux distincts, et le polygone affiché doit être simple et contenir le point de la requête strictement à l'intérieur. S'il existe plusieurs solutions, affichez n'importe laquelle d'entre elles.

Exemples

Entrée 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

Sortie 1

3
4 1 2
-1

Note

Dans le premier cas de test, le triangle $P_4 P_1 P_2$ contient le point demandé $P = (0, 0)$ strictement à l'intérieur. Comme un polygone possède au moins trois sommets, ce triangle a le nombre minimum de sommets.

Dans le deuxième cas de test, le seul polygone possible est le triangle $P_1 P_2 P_3$. Le point demandé $P = (0, 0)$ se trouve sur l'arête $P_2 P_3$, la réponse est donc $-1$.

problem_23596_b7e688351da0758f2f7d7d3948442e24.png

Illustrations des cas de test de l'exemple

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.