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

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

결승선을 향한 시차 출발

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

요약
타원형 트랙의 기하 정보와 경주 거리가 주어질 때, 모든 선수가 같은 거리를 뛰도록 각 레인의 출발선 좌표를 계산한다.
난이도

보통10점 중 7점

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

문제

타원형 육상 트랙은 두 개의 평행한 직선 구간을 두 개의 반원으로 연결한 형태이다(그림 1). 달리기는 반시계 방향으로 진행되며, 아래쪽 직선 구간에 공통 결승선이 있다. 한 직선 구간의 길이를 넘는 경주의 경우, 출발선은 결승선에서 시계 방향으로 뒤로 물러나 시차를 두고 배치되어야 한다. 이때 반원의 곡률과 각 레인의 폭을 반영해야 한다.

그림 1: 200200m 출발선이 표시된 타원형 트랙.

그림 2: 시차 출발선 위치를 보여 주는 확대도.

타원형 트랙의 규격에는 국제 기준이 있다. 그러나 트랙을 놓을 수 있는 공간이 항상 기준 규격에 맞는 것은 아니다. 트랙의 치수와 경주 거리가 주어질 때, 시차 출발선의 위치를 계산해 모든 레인의 경주 거리를 같게 만드는 프로그램을 작성하라.

각 레인의 경주 총거리는 주행선을 기준으로 계산한다. 주행선은 레인의 안쪽 표시선에서 (반시계 방향에서 볼 때) 오른쪽에 있는, 표시되지 않은 선이다. 그림 2를 참고하라. 가장 안쪽 레인(1번 레인)의 주행선은 보통 나머지 레인의 주행선보다 레인 표시선에서 더 멀리 떨어져 있다.

트랙은 중심이 (0,0)(0, 0)인 (x,y)(x, y) 좌표계에 대응된다. 그림 1을 참고하라.

입력

프로그램의 첫 번째 입력 줄에는 트랙의 기하 구조를 나타내는 일곱 개의 값 NN RR SS WW FF L_1L\_1 L_2L\_2가 공백으로 구분되어 주어진다.

  • NN은 레인의 개수이다. (1≤N≤91 \le N \le 9)
  • RR은 1번 레인의 안쪽 반지름이며 단위는 미터인 실수이다. 그림 1을 참고하라. (1.0≤R≤100.01.0 \le R \le 100.0)
  • SS는 직선 구간의 길이이며 단위는 미터인 실수이다. 그림 1을 참고하라. (1.0≤S≤200.01.0 \le S \le 200.0)
  • WW는 각 레인의 폭이며 단위는 미터인 실수이다. 그림 2를 참고하라. (0.5≤W≤3.00.5 \le W \le 3.0)
  • FF는 그림 1의 중심선에서 잰 결승선의 xx 좌표이며 단위는 미터인 실수이다. 결승선은 항상 트랙의 아래쪽(yy가 음수인) 절반에 있다. (∣F∣≤S/2\vert F\vert \le S / 2)
  • L_1L\_1은 1번 레인의 안쪽 반지름에서 1번 레인의 주행선까지의 오프셋이며 단위는 미터인 실수이다. 그림 2를 참고하라. (0≤L_1<W0 \le L\_1 < W)
  • L_2L\_2는 안쪽 반지름에서 2번 이상 레인의 주행선까지의 오프셋이다. 그림 2를 참고하라. (0≤L_2<W0 \le L\_2 < W)

파일 끝까지 남은 줄에는 경주 거리 DD가 한 줄에 하나씩, 단위는 미터인 실수로 주어진다. (1.0≤D<410.01.0 \le D < 410.0) 입력에 주어지는 거리 DD는 최대 100개이다.

출력

각 경주 거리마다 일련의 값을 공백이나 줄바꿈으로 구분해 출력한다. 경주 거리를 먼저 출력하고, 이어서 시차 출발선 위치의 (x,y)(x, y) 좌표를 레인 번호 순서대로 출력한다. 모든 값의 단위는 미터이다. (x,y)(x, y) 좌표는 레인의 가장 안쪽 점이며 주행선이 아니다. 각 레인 표시선(직선 구간 또는 반지름)은 폭이 0인 선으로 간주한다. 국제 기준에 따라 값은 정확한 답과의 차이가 0.0010.001미터 이내여야 한다.

예제1

  1. 예제 1

    입력
    4 36.5 84.39 1.22 40.0 0.30 0.20
    200.0
    400
    
    예상 출력
    200.000 -40.0006 36.5000 -43.5119 37.6970 -47.3108 38.6025 -51.0664 39.1679
    400.000 40.0012 -36.5000 46.9998 -37.4127 54.4292 -36.9682 61.4438 -35.2464