이어달리기
면접 대비시간 제한1초메모리 제한128 MB
소가 한 바퀴를 돈 뒤 다른 소에게 출발 신호를 보내고, 중복 신호는 무시될 때 마지막 소가 도착하는 시각을 구한다.
문제
마리()의 소가 있으며, 각각 번부터 번까지 번호가 매겨져 있습니다. 이 소들은 여러 마리가 동시에 달릴 수 있는 독특한 이어달리기에 참가합니다.
시각 이전에는 모든 소가 출발선에서 대기합니다. 각 소는 출발선과 결승선이 같은 원형 트랙을 정확히 한 바퀴만 달립니다.
시각 에 번 소가 달리기 시작하여 정확히 초 뒤에 출발선을 다시 통과합니다. 일반적으로 번 소가 한 바퀴를 도는 데 걸리는 시간은 초()입니다. 소가 한 바퀴를 마치고 출발선을 통과하는 순간, 그 소는 다른 마리()의 소 에게 즉시 출발하라는 신호를 보냅니다.
신호를 받은 소는 그 순간 자신의 한 바퀴를 시작하고, 결승선을 통과할 때 다시 자신의 신호를 보냅니다. 한 소는 여러 소로부터 신호를 받을 수 있지만 한 바퀴만 달리므로, 처음 받은 신호 이후의 신호는 모두 무시합니다. 모든 소는 적어도 한 번은 신호를 받는 것이 보장됩니다.
마지막 소가 한 바퀴를 마치는 시각, 즉 전체 경주 시간을 구하세요.
소가 마리인 경우를 생각해 봅시다. 아래 표는 각 소의 번호 , 한 바퀴 시간 , 결승선을 통과할 때 신호를 보내는 소의 수 , 그리고 그 대상 목록 을 나타냅니다.
i L_i M_i A_i*
1 4 2 2 4
2 3 3 1 3 4
3 7 1 5
4 4 2 3 5
5 1 0
번 소가 시각 에 출발하면 다음과 같은 순서로 사건이 진행됩니다.
따라서 이 경주는 초 동안 진행됩니다.
입력
- 첫째 줄: 정수 하나.
- 둘째 줄부터 번째 줄까지: 번째 줄에는 공백으로 구분된 정수 , 가 주어지고, 그 뒤에 개의 정수 가 이어집니다.
출력
- 정수 하나: 마지막 소가 한 바퀴를 마치는 시각.