D란 철로의 길이에서 양쪽 반대편에서 기차가 각각 A,B의 속력으로 서로 마주보며 다가오는데
그 사이의 파리가 시속 F 동안 기차 사이를 움직 일 수 있는데, 어느정도 거리를 이동하는지 출력하는 문제입니다.
이 문제를 어떻게 놓고 보면, 기차가 충돌하기 전 까지 파리가 얼마동안 날고있는지를 보면 되는 것을 알게 됐습니다.
🔔 Kick Point :
float으로 하면, 계산 시 오류가 일어났습니다. 대신 double형을 사용하니 잘 작동하더군요.
우선, 파리가 어느정도 날고 있는지를 확인하면 되는데
거리 / (두 기차가 다가오는 속력) 을 구하면 시간을 구할 수 있습니다.
이때, 시간 * 파리의 속력을 구하면, 파리의 이동거리를 구할 수 있습니다.
🔔 Code :
#include <iostream>
using namespace std;
int main() {
int p; cin >> p;
while (p--) {
int n;
double d, a, b, f;
cin >> n >> d >> a >> b >> f;
double time = d / (a + b);
cout << fixed;
cout.precision(6);
cout << n << ' ' << f * time << '\n';
}
}