케노샤(Kenosha) 시에는 $N$개의 교차로가 있으며 $1 \ldots N$로 번호가 매겨져 있고, 이들을 잇는 $M$개의 도로가 $1 \ldots M$로 번호가 매겨져 있다. 같은 교차로 쌍을 잇는 도로는 둘 이상 존재하지 않으며, 자기 자신을 잇는 도로도 없다. 교차로 $i$와 $j$ 사이의 정수 이동 시간 $T_{ij}$는 양방향으로 동일하다. 즉 $T_{ij} = T_{ji}$이다.
각 교차로에는 신호등이 하나씩 있으며 파란색 또는 보라색 두 가지 색 중 하나를 나타낸다. 각 신호등은 일정 시간 동안 파란색을 켰다가 다른 일정 시간 동안 보라색을 켜는 것을 주기적으로 반복한다. 어떤 도로로 출발하는 바로 그 순간에 그 도로 양 끝 두 교차로의 신호등 색이 같을 때에만 그 도로로 진입할 수 있다. 이동하는 도중에 두 신호등의 색이 계속 같을 필요는 없다.
차량이 신호가 바뀌는 바로 그 순간에 교차로에 도착하면 새 색을 따른다. 차량은 교차로에서 원하는 만큼 대기할 수 있다. 각 교차로 $i$에 대해 파란색 지속 시간 $DB_i$, 보라색 지속 시간 $DP_i$, 초기 색 $C_i$(파란색이면 B, 보라색이면 P), 그리고 그 초기 색이 처음으로 바뀌기까지 남은 시간 $R_i$가 주어진다.
시각 $0$에 출발 교차로 $S$에서 출발하여, 도착 교차로 $D$($D \ne S$)에 이르는 최소 시간을 구하여라.
제약 조건: $2 \le N \le 300$, $1 \le M \le 14{,}000$, $1 \le T_{ij} \le 100$, $1 \le DB_i \le 100$, $1 \le DP_i \le 100$, $1 \le R_i \le 100$, $1 \le S, D \le N$.
예시 설명. 교차로 4개와 도로 5개가 있고, 차량이 교차로 1에서 교차로 4로 가려는 상황을 생각하자.
| 교차로 | 초기 색 | 남은 시간 | 파란색 지속 | 보라색 지속 |
|---|---|---|---|---|
| 1 | B | 2 | 16 | 99 |
| 2 | P | 6 | 32 | 13 |
| 3 | P | 2 | 87 | 4 |
| 4 | P | 38 | 96 | 49 |
도로(이동 시간): 1-2 (4), 1-3 (40), 2-3 (75), 2-4 (76), 3-4 (77).
최소 시간은 경로 1 -> 2 -> 4를 따라 127이다.