만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Archimedes

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

요약
나선 r = b·φ 위에서 아바타가 접선 방향으로 떠나 목표 점 T에 닿는 지점을 구합니다.
난이도

보통10점 중 7점

유형
기하, 수학, 이분 탐색
정답자
아직 제출이 없습니다

문제

Archimedes's Spiral, b=12b = \frac{1}{2}

Archimedes는 규칙이 아주 단순한 새 2D 게임이다. 플레이어가 시작을 누르면 아바타가 원점에서 아르키메데스 나선을 따라 움직이기 시작한다. 플레이어가 버튼을 누르면 아바타는 그 순간 움직이고 있던 방향으로 나선에서 떨어져 나간다. 목표는 표적을 맞히는 것이다. 아바타가 나선에서 떨어진 뒤의 경로는 나선의 어떤 부분과도 교차하면 안 된다.

이 게임을 연구하기 위해, 나선의 각속도가 주어졌을 때 아바타를 풀어 주어 표적을 맞히려면 플레이어가 버튼을 눌러야 하는 지점을 계산하는 프로그램을 작성하라.

아르키메데스 나선은 원점을 중심으로 일정한 각속도로 회전하는 직선 위를 일정한 속력으로 점이 움직일 때 그려진다. 극좌표 (r,ϕ)(r, \phi)에서 나선은 r=b ϕr = b \ \phi로 나타낸다. 여기서 rr은 원점에서의 거리이고, ϕ\phi는 점, 원점, 단위 벡터 (1,0)(1, 0)이 이루는 각이다. 상수 bb는 나선의 이웃한 두 바퀴 사이 간격을 정한다.

입력

입력은 실수 3개 bb, txt_x, tyt_y가 한 줄에 주어진다. bb는 나선 r=b ϕr = b \ \phi의 매개변수이고, T=(tx,ty)T = (t_x, t_y)는 표적의 좌표이다.

제약 조건은 0.01≤b≤100.01 \le b \le 10과 −10 000≤tx,ty≤10 000-10\,000 \le t_x, t_y \le 10\,000이다. tx2+ty2>2πb\sqrt{t_x^2+t_y^2} > 2 \pi b가 보장되므로, 아바타는 나선 위를 적어도 360도 한 바퀴 이상 돈다. 표적 TT에서 나선의 가장 가까운 점까지의 거리는 10−310^{-3}보다 크다. bb는 유효숫자 12자리까지, txt_x와 tyt_y는 소수점 아래 3자리까지 주어진다.

출력

아바타가 나선을 떠나는 지점의 xx, yy 좌표를 출력한다. 아바타는 그 지점에서 나선을 떠난 뒤 같은 방향으로 계속 움직여 나선과 교차하지 않고 표적에 도달해야 한다.

xx와 yy 각각의 절대 오차 또는 상대 오차가 10−510^{-5} 이하이면 정답으로 인정한다.

예제5

  1. 예제 1

    입력
    0.5 -5.301 3.098
    
    예상 출력
    -1.26167861 3.88425357
    
  2. 예제 2

    입력
    0.5 8 8
    
    예상 출력
    9.21068947 2.56226688
    
  3. 예제 3

    입력
    1 8 8
    
    예상 출력
    6.22375968 -0.31921472
    
  4. 예제 4

    입력
    0.5 -8 8
    
    예상 출력
    -4.36385220 9.46891588
    
  5. 예제 5

    입력
    0.5 0 -8
    
    예상 출력
    -3.60855706 -3.61140618