Кола — це ТОЧКИ !#13067

Кола — це ТОЧКИ !

4 секунди
1 024 мегабайти

Вам задано множину з точок, кожна точка задається двома цілими числами (x_i , y_i); дві з них є базовими точками. Вам потрібно обробити запитів двох типів.

Для початкової множини та після кожного запиту виведіть "YES", якщо можна провести коло, яке проходить через усі точки множини, та "NO" інакше.

Вхідні дані

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

Перший рядок кожного тестового випадку містить чотири цілих числа 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) — кількість точок, кількість запитів, індекс першої базової точки, індекс другої базової точки відповідно.

Далі йдуть рядків; кожен рядок містить два цілих числа x_i , y_i (-10^6 \le x_i , y_i \le 10^6) — координати i_{th} точки.

Далі йдуть рядків вигляду c_i , x_i , y_i (c_i \in \{+ , -\} , -10^6 \le x_i,y_i \le 10^6).

Гарантується, що сума і сума за всіма тестовими випадками не перевищує 2 \cdot 10^5.

Вихідні дані

Для кожного тестового випадку виведіть q+1 рядків: відповідь для початкової множини, а потім відповідь після кожного запиту.

Приклади

Приклад 1

Loading
Loading

Примітка

У першому тестовому випадку після другого запиту коло можна провести так, як показано нижче.

Оцінювання

  • Підзадача ( балів) n = 2 \hspace{1mm}, \hspace{1mm}q = 0 для всіх тестових випадків.

  • Підзадача ( балів) n = 3 \hspace{1mm} , \hspace{1mm} q = 0 для всіх тестових випадків.

  • Підзадача ( балів) q = 0 для всіх тестових випадків.

  • Підзадача ( балів) Без додаткових обмежень.