QOJ.ac

QOJ

時間限制: 2.0 s 記憶體限制: 1024 MB 總分: 100

#14509. Двумерный пинбол

统计

Вы играете в игру под названием «Двумерный пинбол».

  • Игровое поле представляет собой квадратную область, координаты четырех вершин которой заданы в порядке по часовой стрелке: $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3)$, $(x_4, y_4)$.
  • На поле находится изначально неподвижный шарик. Начальное положение шарика — $(x_0, y_0)$ (гарантируется, что он находится строго внутри квадрата), начальная скорость равна 0.
  • Шарик считается материальной точкой и подчиняется законам физики, испытывая воздействие только направленного вниз ускорения свободного падения $g = 10$.
  • При столкновении шарика с одной из границ квадрата происходит упругое соударение: нормальная составляющая скорости меняет направление на противоположное, а тангенциальная составляющая скорости остается неизменной. Величина скорости сохраняется.
  • В частности, при столкновении шарика с одной из вершин (углов) квадрата обе составляющие скорости меняют направление на противоположное (то есть скорость становится $(-v_x, -v_y)$).
  • Любое столкновение считается мгновенным (ситуации, когда шарик длительное время находится на границе, отсутствуют). В процессе движения шарика потери энергии отсутствуют.

Даны координаты четырех вершин квадрата $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3)$, $(x_4, y_4)$, начальное положение шарика $(x_0, y_0)$ и время движения $t$. Вам нужно найти положение шарика $(x, y)$ через $t$ секунд.

Входные данные

В задаче несколько наборов входных данных. В первой строке содержится целое число $T$ ($1 \le T \le 10^4$), количество наборов данных.

Для каждого набора данных: Сначала вводятся 4 строки, в $i$-й строке содержатся два целых числа $x_i, y_i$ ($|x_i, y_i| \le 10^4$), представляющие $i$-ю вершину квадрата. Затем следует строка с тремя числами $x_0, y_0, t$ ($0 \le |x_0|, |y_0| \le 10^4$, $0 < t \le 10^6$), представляющими начальное положение и прошедшее время.

Гарантируется, что четыре вершины квадрата заданы в порядке по часовой стрелке. Гарантируется, что начальное положение шарика находится строго внутри квадрата.

Выходные данные

Для каждого набора данных: Выведите одну строку с двумя числами, представляющими положение шарика $x, y$ через $t$ секунд. Ваш ответ должен иметь относительную или абсолютную погрешность не более $10^{-5}$. То есть, если ваш ответ $a$, а правильный ответ $b$, то ответ считается верным, если $\frac{|a-b|}{\max(1, |b|)} \le 10^{-5}$.

Примеры

Входные данные 1

2
0 0
0 20
20 20
20 0
5 5 5
-10 0
0 10
10 0
0 -10
0 0 12

Выходные данные 1

5.0000000000 0.0000000000
0.0000000000 -2.3549801218

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.