Бісектриси#2623

Бісектриси

1 секунда
64 мегабайти
Складна

Ми всі знаємо, як знаходити рівняння бісектрис у координатній геометрії. Якщо рівняння двох прямих мають вигляд a_ix + b_iy + c_i = 0 та a_jx + b_jy + c_j = 0, то визначені й рівняння бісектрис чотирьох кутів, які вони утворюють. Проте потрібно знати, для яких кутів вибирати знак "+" (плюс), а для яких знак "-" (мінус). У цій задачі вам належить зробити аналогічний вибір.

Нехай задано фіксовану точку (C_x, C_y) і (n \leq 10000) інших точок навколо неї. Жодна з цих точок не розташована на одній прямій із (C_x, C_y). Якщо з'єднати всі ці точки з (C_x, C_y), то отримаємо зіркоподібну топологію з прямих. Рівняння цих прямих задані, і саме ці рівняння слід використовувати під час пошуку рівнянь бісектрис. Ці прямих утворюють загалом \frac{n(n-1)}{2} (гострих або тупих) кутів, а отже, існує \frac{n(n-1)}{2} бісектрис. Вам треба визначити, для скількох із цих бісектрис рівняння складається із використанням знака "+". На ілюстрації нижче показано випадок для n=5, C_x=5, C_y=2. Ця діаграма відповідає єдиному прикладу у вхідних даних.

Вхідні дані

Вхідний файл містить не більше ніж 35 наборів даних. Опис кожного набору наступний:

Перший рядок кожного набору містить три цілі числа C_x, C_y (-10000 \leq C_x, C_y \leq 10000) та (0 \leq n \leq 10000). Кожен із наступних рядків містить два цілі числа x_i, y_i (-20000 \leq x_i, y_i \leq 20000) і рядок вигляду a_ix + b_iy + c_i = 0. Тут (x_i, y_i) — точка навколо (C_x, C_y), а рядок задає рівняння прямої, що сполучає (C_x, C_y) та (x_i, y_i). Можна вважати, що -100000 \leq a_i, b_i \leq 100000 та -2000000000 \leq c_i \leq 2000000000. Це рівняння слід використовувати для пошуку рівнянь бісектрис кутів, які утворюють ці прямі.

Введення закінчується набором, де значення дорівнює нулю.

Вихідні дані

Для кожного набору даних виведіть єдиний рядок. У цьому рядку має міститись одне ціле число — кількість рівнянь бісектрис, які формуються із використанням знака "+" у рівнянні бісектриси.

Приклади

Приклад 1

Loading
Loading