QOJ.ac

QOJ

実行時間制限: 2.0 s メモリ制限: 1024 MB 満点: 100

#14509. 2차원 핀볼

統計

2차원 핀볼

당신은 2차원 핀볼이라는 게임을 하고 있습니다.

  • 게임 공간은 정사각형 영역이며, 정사각형의 네 꼭짓점 좌표는 시계 방향 순서로 $(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$가 주어질 때, $t$초 후 공의 위치 $(x, y)$를 구하고자 합니다.

입력

입력은 여러 개의 테스트 케이스로 구성됩니다. 첫 번째 줄에 테스트 케이스의 개수 $T$ ($1 \le T \le 10^4$)가 주어집니다.

각 테스트 케이스에 대하여: 먼저 4개의 줄이 주어지며, $i$번째 줄에는 정사각형의 $i$번째 꼭짓점을 나타내는 두 정수 $x_i, y_i$ ($|x_i, y_i| \le 10^4$)가 주어집니다. 그다음 줄에는 경과 시간을 나타내는 세 정수 $x_0, y_0, t$ ($0 \le |x_0|, |y_0| \le 10^4, 0 < t \le 10^6$)가 주어집니다.

정사각형의 네 꼭짓점은 시계 방향 순서로 주어짐이 보장됩니다. 공의 초기 위치는 정사각형 내부에 엄격히 위치함이 보장됩니다.

출력

각 테스트 케이스에 대하여: $t$초 후 공의 위치 $x, y$를 한 줄에 출력합니다. 표준 답안과의 상대 오차 또는 절대 오차가 $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.