아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

이어달리기

면접 대비

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

요약
소가 한 바퀴를 돈 뒤 다른 소에게 출발 신호를 보내고, 중복 신호는 무시될 때 마지막 소가 도착하는 시각을 구한다.
난이도

보통10점 중 5점

유형
그래프, BFS, 시뮬레이션, 큐
정답자
아직 제출이 없습니다

문제

NN마리(1≤N≤10001 \le N \le 1000)의 소가 있으며, 각각 11번부터 NN번까지 번호가 매겨져 있습니다. 이 소들은 여러 마리가 동시에 달릴 수 있는 독특한 이어달리기에 참가합니다.

시각 t=0t = 0 이전에는 모든 소가 출발선에서 대기합니다. 각 소는 출발선과 결승선이 같은 원형 트랙을 정확히 한 바퀴만 달립니다.

시각 t=0t = 0에 11번 소가 달리기 시작하여 정확히 L1L_1초 뒤에 출발선을 다시 통과합니다. 일반적으로 ii번 소가 한 바퀴를 도는 데 걸리는 시간은 LiL_i초(1≤Li≤10001 \le L_i \le 1000)입니다. 소가 한 바퀴를 마치고 출발선을 통과하는 순간, 그 소는 다른 MiM_i마리(0≤Mi≤N0 \le M_i \le N)의 소 Ai1,Ai2,…,AiMiA_{i1}, A_{i2}, \dots, A_{iM_i}에게 즉시 출발하라는 신호를 보냅니다.

신호를 받은 소는 그 순간 자신의 한 바퀴를 시작하고, 결승선을 통과할 때 다시 자신의 신호를 보냅니다. 한 소는 여러 소로부터 신호를 받을 수 있지만 한 바퀴만 달리므로, 처음 받은 신호 이후의 신호는 모두 무시합니다. 모든 소는 적어도 한 번은 신호를 받는 것이 보장됩니다.

마지막 소가 한 바퀴를 마치는 시각, 즉 전체 경주 시간을 구하세요.

소가 55마리인 경우를 생각해 봅시다. 아래 표는 각 소의 번호 ii, 한 바퀴 시간 LiL_i, 결승선을 통과할 때 신호를 보내는 소의 수 MiM_i, 그리고 그 대상 목록 Ai∗A_{i*}을 나타냅니다.

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

11번 소가 시각 00에 출발하면 다음과 같은 순서로 사건이 진행됩니다.

시각사건
01번 소가 달리기 시작함
41번 소가 결승선을 통과하고 2번, 4번에게 신호를 보냄
42번 소가 달리기 시작함 (4 + 3 = 7에 완주)
44번 소가 달리기 시작함 (4 + 4 = 8에 완주)
72번 소가 결승선을 통과하고 1번, 3번, 4번에게 신호를 보냄
71번과 4번은 중복된 신호를 무시함
73번 소가 달리기 시작함 (7 + 7 = 14에 완주)
84번 소가 결승선을 통과하고 3번, 5번에게 신호를 보냄
83번 소는 중복된 신호를 무시함
85번 소가 달리기 시작함 (8 + 1 = 9에 완주)
95번 소가 완주하지만 신호를 보낼 대상이 없음
143번 소가 결승선을 통과하고 5번에게 신호를 보냄
145번 소는 중복된 신호를 무시함
14모든 소가 완주함

따라서 이 경주는 1414초 동안 진행됩니다.

입력

  • 첫째 줄: 정수 NN 하나.
  • 둘째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 공백으로 구분된 정수 LiL_i, MiM_i가 주어지고, 그 뒤에 MiM_i개의 정수 Ai1,…,AiMiA_{i1}, \dots, A_{iM_i}가 이어집니다.

출력

  • 정수 하나: 마지막 소가 한 바퀴를 마치는 시각.

예제3

  1. 예제 1

    입력
    5
    4 2 2 4
    3 3 1 3 4
    7 1 5
    4 2 3 5
    1 0
    
    예상 출력
    14
    
  2. 예제 2

    입력
    1
    5 0
    
    예상 출력
    5
    
  3. 예제 3

    입력
    3
    2 1 2
    3 1 3
    4 0
    
    예상 출력
    9