아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

항공우주 및 기계공학

시간 제한1초메모리 제한128 MB

요약
각 단의 질량, 연소 시간, 추력을 받아 로켓의 수직 운동을 계산하고, 마지막 단이 떨어질 때의 높이를 소수점 둘째 자리까지 구한다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 구현, 수학
정답자
아직 제출이 없습니다

문제

항공우주 엔지니어는 하늘을 나는 것을 만드는 일을 좋아합니다. 비행기, 로켓 등을 만들지요. 로켓을 만들어 발사했다면, 자연스럽게 이런 질문이 떠오릅니다. 이 로켓은 다시 떨어지기 전까지 얼마나 높이 올라갈까요?

다음과 같은 모델을 생각합니다. 로켓은 nn개의 단(stage)으로 이루어져 있고, 각 단은 본질적으로 연료 탱크입니다. 한 단은 정해진 시간 동안 연소하며, 연료가 다 떨어지면 (빈 탱크는) 분리되어 버려집니다. 그래서 로켓은 단을 하나씩 떨궈 낼수록 점점 가벼워집니다. 마지막 단이 분리되고 나면 로켓은 더 이상 가속할 수 없습니다. 로켓의 본체 자체는 M>0M > 0 킬로그램(kg)의 무게를 가지며, 이는 모든 단을 떨궈 낸 뒤에 남는 무게입니다.

각 단 ii에 대해 다음 세 값이 주어집니다.

  • 무게 mi≥0m_i \ge 0 (kg),
  • 연소가 지속되는 시간 ti≥0t_i \ge 0 (초, s),
  • 연소하는 동안 만들어 내는 일정한 추력(힘) Fi≥0F_i \ge 0 (단위는 kg·m/s², 여기서 m은 미터를 뜻합니다).

연료 자체의 무게는 없다고 가정합니다. 따라서 단 ii가 연소하는 동안 전체 질량은 일정하며, 그 값은 MM에 아직 분리되지 않은 모든 단(단 i,i+1,…,ni, i+1, \dots, n)의 무게를 더한 것과 같습니다. 로켓은 수직 위로 곧게 발사되며, 바람·마찰·고도에 따른 중력 약화 등의 효과는 모두 무시합니다. 로켓은 높이 00에서 정지 상태(속도 00 m/s)로 시작하고, 각 단은 1,2,…,n1, 2, \dots, n의 순서대로 사용되고 분리됩니다.

필요한 물리 공식은 다음과 같습니다.

  1. a=F/ma = F/m — 질량 mm인 물체가 힘 FF를 받으면 가속도는 a=F/ma = F/m입니다.
  2. 지구 중력장에서 모든 물체는 일정한 g=9.81g = 9.81 m/s²의 크기로 아래로 가속됩니다.
  3. 속도 vv로 출발해 가속도 aa로 움직이는 물체는 tt초 동안 거리 vt+12at2vt + \frac{1}{2}at^2만큼 이동하고, 그 뒤의 속도는 v+atv + at가 됩니다.

즉 단 ii가 연소하는 동안 위쪽 방향의 알짜 가속도는 ai=Fi/질량i−ga_i = F_i / \text{질량}_i - g이며 tit_i초 동안 적용됩니다. 연소가 끝나면 단 ii가 분리되어 질량이 mim_i만큼 줄어듭니다.

마지막 단이 떨어져 나가는 순간의 로켓 높이를 구하세요. 입력은 항상 로켓이 이륙하고, 마지막 단이 분리되기 전에 지면으로 추락하지 않도록 주어집니다.

입력

첫 번째 줄에는 파일에 담긴 데이터 집합의 개수 K≥1K \ge 1이 주어집니다. 그 뒤로 다음 형식의 데이터 집합이 KK개 이어집니다.

  • 첫 줄에는 단의 개수 nn (1≤n≤301 \le n \le 30)과 로켓 본체의 무게 MM이 주어집니다. MM은 00보다 엄격히 큰 실수입니다.
  • 이어서 nn개의 줄이 주어지며, 각 줄에는 한 단을 나타내는 음이 아닌 실수 세 개 mi ti Fim_i\ t_i\ F_i가 있습니다. 따라서 로켓의 초기 전체 무게는 M+∑imiM + \sum_i m_i입니다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력합니다. 여기서 xx는 데이터 집합의 번호이며 11부터 셉니다. 그런 다음 다음 줄에 마지막 단이 떨어져 나갔을 때 로켓이 있던 높이를 소수점 아래 정확히 두 자리로 반올림하여 출력합니다.

예제3

  1. 예제 1

    입력
    1
    3 1000.0
    325.0 120.0 18000.0
    75.0 60.0 5100.0
    200.0 120.0 15000.0
    
    예상 출력
    Data Set 1:
    8550.00
    
  2. 예제 2

    입력
    1
    1 100.0
    0.0 10.0 1981.0
    
    예상 출력
    Data Set 1:
    500.00
    
  3. 예제 3

    입력
    2
    1 100.0
    0.0 10.0 1981.0
    3 1000.0
    325.0 120.0 18000.0
    75.0 60.0 5100.0
    200.0 120.0 15000.0
    
    예상 출력
    Data Set 1:
    500.00
    Data Set 2:
    8550.00