만드는 중입니다

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

원에서의 공 튕기기

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

요약
단위원 위 (-1,0)에서 유리수 기울기 a/b로 던진 공이 완전 반사로 n번 튕긴 뒤 도달하는 지점의 x좌표를 1e9+7로 나눈 나머지로 구한다.
난이도

어려움10점 중 8점

유형
수학, 기하, 정수론, 조합론
정답자
아직 제출이 없습니다

문제

넓고 완벽한 원형 경기장의 벽 옆에 서서 테니스 공을 경기장의 다른 부분을 향해 세게 던진다. 정해진 횟수만큼 튕긴 뒤, 테니스 공은 벽의 어느 지점에 다음으로 부딪히는가?

경기장을 원점이 중심인 단위원으로 나타내고, 당신은 점 (−1,0)(-1, 0)에 서 있다. 공은 좌표평면에서 유리수 a/ba/b로 주어지는 기울기 방향으로 던진다. 각 튕김은 완벽해서 에너지를 잃지 않으며, 충돌 지점에서 벽에 접하는 접선을 기준으로 입사각과 반사각이 같게 튕긴다.

nn번 튕긴 뒤, 공은 원 위의 어떤 점 pp에 다시 부딪히며, pp의 좌표는 (r/s,t/u)(r/s, t/u)로 나타낼 수 있는 유리수이다. 분수 r/sr/s를 소수 M=1,000,000,007M = 1{,}000{,}000{,}007로 나눈 나머지를 출력하라.

xx 좌표는 기약분수 r/sr/s로 나타낼 수 있음이 알려져 있으며, 여기서 rr과 ss는 정수이고 s≢0(modM)s \not\equiv 0 \pmod M이다. r⋅s−1(modM)r\cdot s^{-1} \pmod M과 같은 정수를 출력하라. 즉, 0≤k<M0 \le k < M이고 k⋅s≡r(modM)k\cdot s \equiv r \pmod M인 정수 kk를 출력하라.

예를 들어, 기울기 1/21/2로 공을 던져 한 번 튕기면, 처음에는 좌표 (3/5,4/5)(3/5, 4/5)에서 벽에 부딪힌다. 튕긴 뒤에는 다음으로 좌표 (7/25,−24/25)(7/25, -24/25)에서 벽에 부딪힌다. 소수 MM에 대한 2525의 모듈로 역원은 280,000,002280{,}000{,}002이고, 최종 결과는 7⋅280,000,002(modM)=960,000,0077\cdot 280{,}000{,}002 \pmod M = 960{,}000{,}007이다.

입력

입력의 한 줄에 세 정수 aa, bb (1≤a,b≤109,gcd⁡(a,b)=11 \le a,b \le 10^9, \gcd(a,b)=1)와 nn (1≤n≤10121 \le n \le 10^{12})이 주어지며, a/ba/b는 던진 방향의 기울기이고 nn은 튕긴 횟수이다. aa와 bb는 서로소이다.

출력

위에서 설명한 대로 정수 하나를 출력한다.

예제 2는 문제 설명의 예시에 해당한다.

예제4

  1. 예제 1

    입력
    1 1 3
    
    예상 출력
    1000000006
    
  2. 예제 2

    입력
    1 2 1
    
    예상 출력
    960000007
    
  3. 예제 3

    입력
    11 63 44
    
    예상 출력
    22
    
  4. 예제 4

    입력
    163 713 980
    
    예상 출력
    0