만드는 중입니다

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

톱니바퀴 회전 (어려움)

면접 대비

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

요약
원판들이 닿아서 연결된 구조에서 1번 기어가 시계 방향으로 초당 1회전할 때 n번 기어의 회전 속도와 방향을 구합니다.
난이도

보통10점 중 5점

유형
그래프, BFS, 기하
정답자
아직 제출이 없습니다

문제

야노는 정비공이다. 그는 크기가 서로 다른 톱니바퀴를 많이 가지고 있다. 어느 날 톱니바퀴 nn개를 골라 복잡한 기계를 조립했다. 이제 1번 톱니바퀴를 돌렸을 때 nn번 톱니바퀴가 돌아가는지, 돌아간다면 얼마나 빨리 도는지 알고 싶다.

톱니바퀴는 1번부터 nn번까지 번호가 매겨져 있으며, 모두 같은 평면 위에 있다.

ii번 톱니바퀴는 중심이 (xi,yi)(x_i, y_i)이고 반지름이 rir_i인 원이다. 모든 좌표는 정수이다. 각 원의 중심은 다른 모든 원의 바깥에 엄격히 놓여 있다.

두 원이 교차하면 두 톱니바퀴는 서로 연결된다. 한 점에서만 맞닿아도 교차로 본다. 교차 부분의 크기는 상관없다.

회전은 초당 회전수와 방향(시계 방향 또는 반시계 방향)으로 나타낸다. 연결된 두 톱니바퀴의 반지름이 r1r_1, r2r_2이고 첫 번째 바퀴가 초당 v1v_1회전하면, 다른 바퀴는 반대 방향으로 초당 v2=v1r1r2v_2 = \frac{v_1 r_1}{r_2}회전한다.

이 식은 기계에서 연결된 모든 쌍에 적용된다. 한 톱니바퀴가 서로 다른 두 속도나 두 방향으로 돌아야 한다면, 그 톱니바퀴는 전혀 돌지 않는다.

야노는 1번 톱니바퀴를 시계 방향으로 초당 1회전 돌린다. nn번 톱니바퀴는 어떻게 돌까?

입력

첫 줄에 테스트 케이스 개수 tt가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.

각 테스트 케이스는 톱니바퀴 개수 nn(2≤n≤1 0002 \le n \le 1\,000)으로 시작한다. 다음 nn개 줄에는 ii번 톱니바퀴의 정수 xix_i, yiy_i, rir_i가 한 줄에 하나씩 주어진다. 0≤xi,yi≤50 0000 \le x_i, y_i \le 50\,000, 1≤ri≤1 0001 \le r_i \le 1\,000이다.

각 테스트 케이스에 대해 다음이 보장된다. 톱니바퀴는 최대 200개이다. 모든 톱니바퀴는 직접 또는 간접적으로 1번과 연결된다. 직접 연결된 쌍은 정확히 n−1n-1개이다.

출력

각 테스트 케이스마다 nn번 톱니바퀴의 속력을 기약분수 p/qp/q(pp와 qq의 최대공약수는 1)로 한 줄에 출력한다. 이어서 방향을 clockwise 또는 counterclockwise로 적는다. nn번 톱니바퀴가 전혀 돌지 않으면 does not rotate를 출력한다.

힌트

첫 번째 테스트 케이스에서 1번과 2번 톱니바퀴는 한 점에서만 닿지만 연결된 것으로 본다. 답은 1/1로 출력한다. 분모가 1이어도 분모를 항상 적어야 하므로 2/2나 1은 틀린 답이다.

두 번째 테스트 케이스의 계산은 다음과 같다.

  • 1번 톱니바퀴가 시계 방향으로 초당 1회전한다.
  • 1번과 직접 연결된 3번은 반시계 방향으로 초당 6/7회전한다.
  • 3번에 연결된 2번과 4번은 모두 시계 방향으로 돈다. 두 바퀴의 반지름이 5로 같으므로 초당 6/5회전으로 돈다.
  • 2번에 연결된 5번은 반시계 방향으로 돈다. 2번과 5번의 반지름이 같으므로 초당 6/5회전이다.

세 번째 테스트 케이스는 답이 does not rotate가 되는 두 가지 이유 중 하나를 보여 준다.

예제1

  1. 예제 1

    입력
    3
    
    3
    0 0 2
    4 0 2
    7 0 2
    
    5
    0 10 6
    20 9 5
    12 9 7
    8 0 5
    22 0 5
    
    6
    8 6 4
    10 13 5
    13 20 5
    3 0 3
    15 1 5
    0 4 3
    
    예상 출력
    1/1 clockwise
    6/5 counterclockwise
    does not rotate