시계

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

요약
서로 비율이 정해진 속도로 도는 시계 손들을 한 시각에서 다른 시각으로 맞출 때, 느린 손을 끌고 가는 구조를 이용해 총 이동 거리를 최소화하고 그 값을 기약분수로 출력하는 문제입니다.
난이도

보통10점 중 7점

유형
수학, 그리디, 정수론
정답자
아직 제출이 없습니다

문제

한 유명한 건축가가 우주가 시작된 순간부터 흘러간 시간을 나타내는 거대한 시계를 세우려 합니다.

이 시계에는 일정한 속도로 도는 바늘이 nn개 있으며, 가장 빠른 것부터 가장 느린 것까지 11번부터 nn번까지 번호가 매겨져 있습니다. 11번 바늘은 11분(6060초)마다 한 바퀴를 돕니다. 각 바늘은 바로 앞 번호보다 느리게 돌아서, ii번 바늘이 did_i바퀴를 도는 동안 i+1i+1번 바늘은 정확히 한 바퀴를 돕니다.

시계를 맞추려면 바늘 끝의 손잡이를 잡고 어느 방향으로든 돌리면 됩니다. 어떤 바늘을 돌리면 그보다 느린 모든 바늘이 평소 속도의 비율에 맞추어 함께 끌려 돌아가고, 그보다 빠른 바늘은 움직이지 않습니다. 바늘이 워낙 거대하므로, 드는 노력은 잡고 돌린 손잡이들이 이동한 거리의 총합과 같습니다.

예를 들어 길이가 각각 55, 1515, 1010미터인 초침, 분침, 시침 세 바늘을 생각해 봅시다. 시계를 2시 30분에서 6시 정각으로 맞추는(그림 참고) 가장 저렴한 방법은 분침을 시계 방향으로 180°180° 돌린 다음 시침을 시계 방향으로 90°90° 돌리는 것이며, 이때 손잡이들이 이동한 거리는 약 62.8362.83미터입니다.

시계를 2시 30분에서 6시 정각으로 맞추기.

손잡이들이 이동하는 총 거리를 최소로 하는 방법을 찾으세요.

입력

첫째 줄에 바늘의 개수 nn이 주어집니다 (0<n≤500 < n \le 50).

둘째 줄에 n−1n-1개의 정수 d1,d2,…,dn−1d_1, d_2, \ldots, d_{n-1}이 주어집니다 (2≤di≤1062 \le d_i \le 10^6). n=1n = 1이면 이 줄은 비어 있습니다.

셋째 줄에 바늘들의 길이를 나타내는 nn개의 정수 l1,l2,…,lnl_1, l_2, \ldots, l_n이 주어집니다 (1≤li≤1061 \le l_i \le 10^6).

다음 두 줄에는 각각 음이 아닌 정수가 하나씩 주어지는데, 순서대로 현재 시계가 가리키는 시각과 맞추어야 할 시각입니다. 두 시각 모두 초 단위이며 2632^{63}보다 작습니다.

출력

길이가 ll인 바늘을 한 바퀴 돌리면 그 손잡이는 2πl2\pi l만큼 움직이므로, 최소 총 이동 거리는 항상 어떤 유리수 QQ에 대해 2πQ2\pi Q의 꼴입니다. 여기서 QQ는 모든 바늘에 대해 (그 바늘의 길이) × (그 바늘을 돌린 바퀴 수)를 더한 값입니다.

QQ를 기약분수 p/q 형태로 출력하세요. 이때 q>0q > 0이고 gcd⁡(∣p∣,q)=1\gcd(|p|, q) = 1입니다 (움직일 바늘이 없으면 0/1을 출력합니다).

위 예시에서 최소 거리는 20π=2π⋅1020\pi = 2\pi \cdot 10이므로 답은 10/1입니다.

예제4

  1. 예제 1

    입력
    3
    60 12
    5 15 10
    52200
    453600
    
    예상 출력
    10/1
    
  2. 예제 2

    입력
    1
    
    7
    1000
    1000
    
    예상 출력
    0/1
    
  3. 예제 3

    입력
    1
    
    10
    0
    30
    
    예상 출력
    5/1
    
  4. 예제 4

    입력
    2
    4
    3 5
    0
    95
    
    예상 출력
    3/1