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

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

제국

면접 대비

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

요약
총 피해량이 K 미만이면서 이동 시간이 가장 짧은 A에서 B까지의 경로를 구합니다.
난이도

보통10점 중 5점

유형
최단 경로, 동적 계획법
정답자
아직 제출이 없습니다

문제

지용이는 미적분학 교과서를 찢어서 사람 한 명이 탈 수 있는 두께 KK의 뗏목을 만들었다. 이제 A 항구를 떠나 무인도 B에 자신의 제국을 세우러 갈 계획이다.

바다에는 섬이 NN개, 바닷길이 MM개 있다. 바닷길이 아닌 곳으로는 갈 수 없어서 지용이는 섬을 거쳐 가며 항해한다. ii번 바닷길은 지나는 데 시간 tit_i가 걸리고 뗏목을 hih_icm 깎아낸다.

지나온 바닷길의 hih_i 합이 KK 이상이 되면 뗏목의 두께가 0cm 이하가 되어, 수영을 못하는 지용이는 살아남지 못한다. 즉 지나온 바닷길의 hih_i 합이 KK보다 작게 유지되는 동안만 항해가 안전하다.

A에서 B까지 안전하게 갈 수 있는 항로 중 걸리는 시간이 가장 짧은 것을 찾아 그 시간을 출력하자. 같은 섬이나 같은 바닷길을 여러 번 지나도 되며, 지날 때마다 시간과 깎이는 두께가 다시 더해진다.

입력

첫째 줄에 정수 KK, NN, MM이 주어진다. (1≤K≤2001 \le K \le 200, 2≤N≤20002 \le N \le 2000, 1≤M≤100001 \le M \le 10000)

다음 MM개의 줄에 바닷길 하나의 정보가 uu, vv, tit_i, hih_i 형태로 주어진다. (1≤u,v≤N1 \le u, v \le N, u≠vu \ne v, 1≤ti≤1000001 \le t_i \le 100000, 0≤hi≤2000 \le h_i \le 200) 섬 uu와 섬 vv를 잇는 양방향 바닷길이 있고, 이 길을 지나는 데 시간 tit_i가 걸리며 뗏목이 hih_i만큼 깎인다는 뜻이다. 같은 두 섬을 잇는 바닷길이 여러 개일 수도 있다.

마지막 줄에 출발점 AA와 도착점 BB가 주어진다. (1≤A,B≤N1 \le A, B \le N, A≠BA \ne B)

출력

지용이가 A에서 B까지 안전하게 항해할 수 있으면 걸리는 최소 시간을, 그럴 수 없으면 -1을 출력한다.

예제2

  1. 예제 1

    입력
    10 4 7
    1 2 4 4
    1 3 7 2
    3 1 8 1
    3 2 2 2
    4 2 1 6
    3 4 1 1
    1 4 6 12
    1 4
    
    예상 출력
    7
    
  2. 예제 2

    입력
    3 3 3
    1 2 5 1
    3 2 8 2
    1 3 1 3
    1 3
    
    예상 출력
    -1