QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

#991. 거의 자유 낙하

Statistics

밥(Bob)은 스카이다이빙을 매우 좋아해서, IT 기업 인턴십 기간 동안 항공기에서 뛰어내려 낙하산을 펴기 전까지 공중을 낙하하는 경험을 하기로 했습니다. 하지만 그가 상상하기도 전에 이미 지면에 도착해 버렸고, 모든 일은 너무나 빠르게 일어났습니다!

이제 그는 뛰어내린 지점부터 특정 시점까지 공중에서 얼마나 이동했는지, 그리고 총 낙하 시간이 얼마인지 알고 싶어 합니다.

이를 더 형식적으로 설명하면 다음과 같습니다. 시간 $t = 0$일 때, 밥은 질량 $m$인 점질량(point-mass)으로, 뛰어내린 지점에 초기 위치하며 초기 속도는 0(정지 상태에서 점프)이고 낙하산은 접혀 있는 상태라고 가정합니다. 당연히 지구의 중력은 그의 무게와 같은 아래 방향의 힘 $m \cdot g$를 가하며, 여기서 $g = 9.81 \, \text{m/s}^2$입니다.

더 현실적으로 만들기 위해, 낙하산을 펴기 전의 시간 동안 공기는 $b_1 \cdot v(t)$와 같은 위 방향의 힘(공기 저항)을 가합니다. 여기서 $b_1$은 주어진 상수이고 $v(t)$는 순간 속도입니다. 그 후, 시간 $t = t_1$에 낙하산을 펴는 순간, 해당 힘은 사라지고 즉시 $b_2 \cdot v(t)$와 같은 새로운 위 방향의 힘이 나타나며, 여기서 $b_2 > b_1$입니다. 이는 낙하산을 펴는 효과가 밥의 낙하에 더 많은 저항을 가하게 됨을, 즉 더 천천히 낙하하게 됨을 의미합니다.

밥이 알고 싶어 하는 시점들에 대해 그가 얼마나 이동했는지, 그리고 총 낙하 시간을 계산하는 작업을 도와주세요. 낙하산은 밥이 지면에 도달하기 전에 반드시 펴지며(즉, 그는 죽지 않습니다), 모든 쿼리의 시간은 총 낙하 시간보다 엄격히 작음이 보장됩니다.

입력

첫 번째 줄에는 다섯 개의 정수 $m$ ($40 \le m \le 120$), $b_1, b_2$ ($1 \le b_1 < b_2 \le 100$), $t_1$ ($90 \le t_1 \le 180$), 그리고 $h_f$ ($1 \le h_f \le 70\,000$)가 주어집니다. 이는 각각 밥의 질량(kg), 낙하산이 접혀 있을 때의 상수($\text{N} \cdot \text{s/m}$), 낙하산이 펴졌을 때의 상수($\text{N} \cdot \text{s/m}$), 낙하산이 펴지는 시간(초), 그리고 시작 지점부터 지면까지의 총 높이(미터)를 나타냅니다. 힘은 뉴턴(N) 단위로 측정되며, $1 \, \text{N} = 1 \, \text{kg} \cdot \text{m/s}^2$임을 기억하세요.

두 번째 줄에는 밥의 쿼리 개수인 정수 $q$ ($1 \le q \le 20$)가 주어집니다.

이어지는 $q$개의 각 줄에는 밥이 이동 거리를 알고 싶어 하는 시점인 정수 $t_i$ (초)가 주어집니다.

출력

$q$개의 줄을 출력하세요: 각 쿼리에 대해 이동한 거리를 미터 단위로 출력합니다. 그 후, 총 낙하 시간을 초 단위로 한 줄 출력합니다.

답의 절대 오차나 상대 오차는 $10^{-4}$를 초과해서는 안 됩니다.

예제

입력 1

45 57 95 173 2347
6
385
293
326
65
104
161

출력 1

2320.3231578947
1892.8136842105
2046.1594736842
497.2936288089
799.3383656510
1240.7883656510
390.7408540039

입력 2

45 75 85 99 811
3
57
89
94

출력 2

331.9704000000
520.3224000000
549.7524000000
143.5652618043

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.