Computer Science/Algorithm Problem

백준] 9469 - 폰 노이만(ACM-ICPC Regionals)

TwinParadox 2019. 2. 19. 09:51
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다.

각 테스트 케이스는 다섯 숫자 N, D, A, B, F이루어져 있다. N은 테스트 케이스의 번호이고, D는 철로의 길이 (10 ≤ D ≤ 1000), A와 B는 두 기차의 속도 (1 ≤ A, B ≤ 30), F는 파리의 속도 (A ≤ B < F ≤ 50)이다. D, A, B, F는 실수이다. 실수는 최대 소수점 둘째자리까지 주어진다.




출력

각 테스트 케이스마다 테스트 케이스 번호를 출력하고, 두 기차가 충돌할 때까지 파리가 움직인 거리를 출력한다. 절대/상대 오차는 10^-2까지 허용한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	int P;
	cin >> P;
	for (int i = 0; i < P; i++)
	{
		int N;
		double D, A, B, F, time = 0.0;
		cin >> N >> D >> A >> B >> F;

		time = D / (A + B);

		cout << N << ' ' << F * time << '\n';
	}
}




Tip

폰 노이만과 무한급수에 관련된 유명한 일화를 가져온 문제다. 이 문제는 폰 노이만처럼 무한급수로 푸는 것이 아니라, 두 기차가 충돌할 때까지 걸린 시간을 파리의 속도와 곱하는 단순한 계산으로 푸는 수학 문제다.



728x90