탄성 충돌
시간 제한3초메모리 제한256 MB
질량 1인 물체가 정지해 있고 질량 N^2인 물체가 오른쪽에서 다가올 때, 두 물체가 서로 및 벽과 탄성 충돌하며 운동하는 동안 발생하는 총 충돌 횟수를 구한다.
문제
탄성 충돌은 운동 에너지가 보존되는 충돌이다. 1차원 상에서 질량이 , 인 두 물체가 각각 속도(여기서 속도는 방향을 포함하는 양이다) , 로 운동하다가 탄성 충돌하면 충돌 후 두 물체의 속도는 각각
이다. 예를 들어 질량 인 물체가 왼쪽에서 속도 로 다가오고 질량 인 물체가 오른쪽에서 속도 로 다가와 탄성 충돌하면 충돌 후 둘의 속도는 각각 과 이 된다. 여기서 속도의 부호는 왼쪽에서 오른쪽으로 운동하는 것을 (+)로 두었다. 한편 움직이지 않는 벽과 물체가 탄성 충돌하면 물체의 속력은 그대로이고 운동 방향만 반대가 된다. 즉, 속도의 부호만 달라진다.
이제 아래 그림과 같이 왼쪽이 벽으로 막힌 1차원 평면에서 운동하는 두 물체 와 를 생각하자. 의 질량은 1이고 처음에는 정지해 있다. 의 질량은 이고 처음에는 의 오른쪽에서 다가온다. 이때 총 충돌 횟수(와 사이 충돌과 벽과 사이 충돌을 모두 센다)는 몇 번일까? 모든 마찰은 무시하고 모든 충돌은 탄성 충돌이다.

입력
첫째 줄에 양의 정수 이 입력된다. (1 ≤ ≤ 500)
출력
총 충돌 횟수를 출력한다.
힌트
Python의 fractions 모듈 사용을 적극 권장한다.