Se te da un conjunto formado por puntos, cada punto representado por dos enteros (x_i , y_i); dos de ellos son puntos base. Debes procesar consultas de dos tipos.
+ \hspace{2mm} (x,y) , añadir el punto () al conjunto; se garantiza que el punto añadido no está en el conjunto.
- \hspace{2mm} (x,y) , eliminar el punto () del conjunto; se garantiza que el punto eliminado está en el conjunto y que no es un punto base ¡importante!Multiconjunto dinámico de circuncentros racionales exactos de un triángulo.
Para el conjunto original y después de cada consulta, imprime "YES" si puedes trazar una circunferencia que pase por todos los puntos del conjunto, y "NO" en caso contrario.
La primera línea contiene un único entero (1 \le t \le 10^4) — el número de casos de prueba.
La primera línea de cada caso de prueba contiene cuatro enteros n,q,a,b (2 \le n \le 2\cdot 10^5 ; 0 \le q \le 2\cdot 10^5) (1 \le a,b \le n , a \neq b) — el número de puntos, el número de consultas, el índice del primer punto base y el índice del segundo punto base, respectivamente.
Luego siguen líneas; cada línea contiene dos enteros x_i , y_i (-10^6 \le x_i , y_i \le 10^6) — las coordenadas del i_{th} punto.
Luego siguen líneas de la forma c_i , x_i , y_i (c_i \in \{+ , -\} , -10^6 \le x_i,y_i \le 10^6).
Se garantiza que la suma de y la suma de sobre todos los casos de prueba no supera 2 \cdot 10^5.
Para cada caso de prueba, imprime q+1 líneas: la respuesta para el conjunto original y después la respuesta tras cada consulta.
Ejemplo 1
En el primer caso de prueba, después de la segunda consulta, puedes trazarla como se muestra a continuación.
Subtarea ( puntos) n = 2 \hspace{1mm}, \hspace{1mm}q = 0 para todos los casos de prueba.
Subtarea ( puntos) n = 3 \hspace{1mm} , \hspace{1mm} q = 0 para todos los casos de prueba.
Subtarea ( puntos) q = 0 para todos los casos de prueba.
Subtarea ( puntos) Sin restricciones adicionales.