Більярд
Нехай G — опуклий багатокутник, а p — точка, що знаходиться строго поза багатокутником. З точки p до G проведено дві дотичні. Виберемо "праву" дотичну (відносно p) і припустимо, що q — точка дотику, а r — точка, симетрична p, де q є центром симетрії. Нехай r = T(p) і назвемо T "більярдним перетворенням".
Дотична pq з точки p до опуклого багатокутника G, де q — точка дотику, називається правою, якщо для будь-якої точки u ∈ G обертання проти годинникової стрілки від вектора pq до вектора pu здійснюється під кутом в інтервалі [0, π).
Розглянемо приклад, щоб краще зрозуміти перетворення T. Нехай G — трикутник з вершинами (0, 0), (2, 0), (1, 1), а точка p має координати (-1, -1). Тоді "права" дотична пройде через вершину (2, 0), тому T(p) = (5, 1). Аналогічно, T((3, 0)) = (-1, 2), T((3, 2)) = (-1, 0), T((3, 4)) = (-3, -4). У деяких випадках "права" дотична може торкатися багатокутника не у вершині, а на стороні. Якщо це трапляється, то T(p) не визначено. Наприклад, для багатокутника G значення T((3, 3)), T((-1,0)), T((4, -2)) не визначені.
Розглянемо послідовність S(p) = (p, T(p), T(T(p)), ...). Залежно від поведінки цієї послідовності, множина всіх точок p поза багатокутником розбивається на класи:
Послідовність S(p) скінченна (тобто T(v) не визначено для останнього значення v).
Послідовність S(p) нескінченна і періодична, можливо з деяким передперіодом.
Послідовність S(p) нескінченна і не періодична.
У задачі "більярдним столом", або фігурою G, є паралелограм OABC, де O = (0, 0). Вам задані координати деякого "столу" і точка строго поза ним. Визначте тип послідовності. Якщо послідовність періодична (типу 2), то знайдіть її період.
Вхідні дані
Перший рядок містить кількість тестів t (1 ≤ t ≤ 3 * 10^5
). Кожен з наступних t рядків містить шість цілих чисел x[A]
, y[A]
, x[C]
, y[C]
, x[p]
, y[p]
, що не перевищують за модулем 10^9
: координати точок A, C і p. Гарантовано, що паралелограм OABC невироджений, а точка p лежить поза багатокутником.
Вихідні дані
Для кожного тесту виведіть в окремому рядку одне число:
-1, якщо послідовність скінченна,
Довжину періоду, якщо послідовність періодична,
-3, якщо послідовність нескінченна і не періодична.