#1401
Platinum III

고속도로 통행료

서브테스크
원문: 日本語
시간 제한
4s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

JOI 왕국은 NN 개의 도시로 이루어진 왕국이며, 이 도시들에는 11 부터 NN 까지의 번호가 붙어 있다. JOI 왕국에는 이 도시들을 잇는 일방통행 고속도로가 MM 개 있고, 11 부터 MM 까지의 번호가 붙어 있다. 고속도로 ii (1≤i≤M1 \le i \le M) 를 지나면 도시 AiA_{i} 에서 도시 BiB_{i} 로 이동할 수 있으며, 통행에 걸리는 시간은 LiL_{i} 이다.

각각의 고속도로를 지날 때마다 통행료가 발생한다. 고속도로 ii 의 통행료는 가장 쌀 때 CiC_{i} 이지만, JOI 왕국의 노동자들은 모두 시간외 노동을 싫어하기 때문에 기준이 되는 시각 00 에서 멀어지면 멀어질수록 통행료가 늘어난다. 구체적으로, 도시 AiA_{i} 를 시각 tt 에 출발하여 고속도로 ii 를 통행한 경우, 통행료는 상수 KK 를 사용하여 Ci+K×∣t∣C_{i} + K \times |t| 로 나타난다. 단, ∣t∣|t| 는 tt 의 절댓값을 나타낸다.

도시 11 에 사는 당신은 친구가 사는 도시 NN 으로 나들이를 갈 계획을 세우고 있다. 당신은 고속도로를 통해 도시 11 에서 도시 NN 까지 이동하고 싶으므로, 우선 그것이 가능한지 확인하고, 가능하다면 통행료의 총합이 최소 얼마가 되는지도 구하고 싶다. 단, 이동 경로나 각 도시를 출발하는 시점은 자유롭게 정할 수 있다. 특히, 도시 11 을 음의 시각에 출발하거나, 고속도로를 통행하지 않고 어떤 도시에 머무르는 시간이 있어도 된다.

고속도로의 정보와 상수 KK 가 주어졌을 때, 고속도로를 통해 도시 11 에서 도시 NN 까지 이동하는 것이 가능한지 판정하고, 가능한 경우에는 통행료 총합의 최솟값을 구하는 프로그램을 작성하시오.

또한, 이 문제의 제약 하에서는 고속도로를 통해 도시 11 에서 도시 NN 까지 이동하는 것이 가능한 경우, 통행료 총합의 최솟값이 반드시 정수가 된다는 것을 증명할 수 있다.

제한

  • 2≤N≤4 0002 \le N \le 4\,000.
  • 1≤M≤8 0001 \le M \le 8\,000.
  • 0≤K≤100 0000 \le K \le 100\,000.
  • 1≤Ai≤N1 \le A_{i} \le N (1≤i≤M1 \le i \le M).
  • 1≤Bi≤N1 \le B_{i} \le N (1≤i≤M1 \le i \le M).
  • Ai≠BiA_{i} \neq B_{i} (1≤i≤M1 \le i \le M).
  • 1≤Li≤1 000 0001 \le L_{i} \le 1\,000\,000 (1≤i≤M1 \le i \le M).
  • 0≤Ci≤1090 \le C_{i} \le 10^{9} (1≤i≤M1 \le i \le M).
  • 입력되는 값은 모두 정수이다.

서브태스크

  1. (99 점) N≤100N \le 100, M≤200M \le 200, K=0K = 0.
  2. (2121 점) N≤100N \le 100, M≤200M \le 200, Li≤20L_{i} \le 20 (1≤i≤M1 \le i \le M).
  3. (1313 점) N≤100N \le 100, M=N−1M = N - 1, Ai=iA_{i} = i, Bi=i+1B_{i} = i+1 (1≤i≤M1 \le i \le M).
  4. (2323 점) N≤100N \le 100, M≤200M \le 200 이며, 다음 제약을 만족한다. NN 은 짝수, [Bi÷2]−[Ai÷2]=1[ B_{i} \div 2 ] - [ A_{i} \div 2 ] = 1 (1≤i≤M1 \le i \le M). 여기서 [x][ x ] 는 xx 이하의 최대 정수를 나타낸다.
  5. (1616 점) N≤100N \le 100, M≤200M \le 200.
  6. (1111 점) N≤1 500N \le 1\,500, M≤3 000M \le 3\,000.
  7. (77 점) 추가 제약이 없다.

입력

입력은 다음 형식으로 주어진다.
NN MM KK
A1A_{1} B1B_{1} L1L_{1} C1C_{1}
A2A_{2} B2B_{2} L2L_{2} C2C_{2}
︙︙
AMA_{M} BMB_{M} LML_{M} CMC_{M}

출력

고속도로를 통해 도시 11 에서 도시 NN 까지 이동하는 것이 불가능한 경우에는 -1 을 출력한다. 가능한 경우에는 통행료 총합의 최솟값을 나타내는 정수를 11 줄로 출력한다.

예제 입력 1

4 4 2
1 2 3 2
1 3 1 10
2 3 1 4
3 4 5 3

예제 출력 1

15

JOI 왕국의 도시와 도로의 모습을 그림으로 나타내면 다음과 같다. 원은 도시를, 화살표는 도로를 나타내며, 각 도로의 옆에는 그 도로의 LiL_{i} 와 CiC_{i} 의 값이 이 순서대로 적혀 있다. 또한, 원 안에 적힌 숫자는 그 도시의 번호를 나타낸다.

다음과 같이 이동하면 통행료의 총합이 1515 가 된다.

  • 시각 −1-1 : 도시 11 을 출발하여 도시 33 으로 향한다. 통행료가 10+2×∣−1∣=1210 + 2 \times |-1| = 12 만큼 든다.
  • 시각 00 : 도시 33 에 도착하여 곧바로 도시 44 로 향한다. 통행료가 3+2×∣0∣=33 + 2 \times |0|=3 만큼 든다.
  • 시각 55 : 도시 44 에 도착한다.

통행료의 총합이 1515 보다 작아지는 이동 방법은 존재하지 않으므로, 1515 를 출력한다.

이 예제는 서브태스크 2,5,6,72,5,6,7 의 제약을 만족한다.

예제 입력 2

4 4 0
1 2 3 2
1 3 1 10
2 3 1 4
3 4 5 3

예제 출력 2

9

예제 11 과는 KK 의 값만이 다르다.

다음과 같이 이동하면 통행료의 총합이 99 가 된다.

  • 시각 −3-3 : 도시 11 을 출발하여 도시 22 로 향한다. 통행료가 2+0×∣−3∣=22 + 0 \times |-3| = 2 만큼 든다.
  • 시각 00 : 도시 22 에 도착하여 곧바로 도시 33 으로 향한다. 통행료가 4+0×∣0∣=44 + 0 \times |0| = 4 만큼 든다.
  • 시각 11 : 도시 33 에 도착하여 그대로 도시 33 에 머무른다.
  • 시각 33 : 도시 33 을 출발하여 도시 44 로 향한다. 통행료가 3+0×∣3∣=33 + 0 \times |3| = 3 만큼 든다.
  • 시각 88 : 도시 44 에 도착한다.

통행료의 총합이 99 보다 작아지는 이동 방법은 존재하지 않으므로, 99 를 출력한다.

이 예제는 서브태스크 1,2,5,6,71,2,5,6,7 의 제약을 만족한다.

예제 입력 3

2 1 10
2 1 4 7

예제 출력 3

-1

고속도로를 통해 도시 11 에서 도시 22 까지 이동하는 것은 불가능하므로, -1 을 출력한다.

이 예제는 서브태스크 2,5,6,72,5,6,7 의 제약을 만족한다.

예제 입력 4

4 3 5
1 2 3 1
2 3 1 10
3 4 7 6

예제 출력 4

37

이 예제는 서브태스크 2,3,5,6,72,3,5,6,7 의 제약을 만족한다.

예제 입력 5

8 8 2
1 2 1 5
5 6 3 1
2 4 10 18
3 5 3 1
1 3 4 2
5 6 2 2
2 5 2 3
6 8 1 1

예제 출력 5

25

같은 (Ai,Bi)(A_{i},B_{i}) 쌍을 가지는 여러 개의 도로가 존재할 수도 있다.

이 예제는 서브태스크 2,4,5,6,72,4,5,6,7 의 제약을 만족한다.

예제 입력 6

6 10 100000
4 2 212037 752027141
2 5 667097 1571491
2 1 769275 576006950
1 2 711969 526189398
5 3 733555 206320177
3 4 364807 802102091
1 4 467240 183184247
3 5 44994 15991843
5 3 613192 782356546
4 6 832593 639529758

예제 출력 6

47546714005

이 예제는 서브태스크 5,6,75,6,7 의 제약을 만족한다.

코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출

제출 내역이 없습니다.

맞은 사람

아직 맞은 사람이 없습니다.

난이도 투표
Platinum III1명 투표· 약 2개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출

제출 내역이 없습니다.