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

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

퍼레이드

시간 제한2초메모리 제한1024 MB

요약
방향을 뒤집을 도로 수를 최소로 하면서 도시 1에서 N까지 총 길이가 L 이하인 경로가 존재하도록 만들고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

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

문제

JOI 왕국에서는 JOIG 개최를 기념해 고적대 퍼레이드를 열기로 했다.

JOI 왕국에는 N개의 도시가 있고 1부터 N까지 번호가 붙어 있다. 또 고적대가 지나갈 수 있는 일방통행 도로가 M개 있고 1부터 M까지 번호가 붙어 있다. 도로 i(1 ≦ i ≦ M)는 도시 Ai에서 도시 Bi로 향하는 일방통행 도로이며 길이는 Ci이다.

퍼레이드에서 고적대는 다음 조건을 만족하도록 이동해야 한다.

  • 도시 1을 출발해 여러 도로를 진행 방향으로 따라 이동하는 것을 반복하며 도시 N으로 향한다.
  • 고적대가 지나는 도로 길이의 합은 L 이하이다.

JOI 왕국의 여왕인 당신은 이 조건을 만족하는 고적대의 이동 경로가 없을 수도 있다는 것을 깨달았다. 그래서 퍼레이드를 열기 위해 퍼레이드 당일 0개 이상의 도로의 진행 방향을 뒤집기로 했다.

혼란을 피하기 위해 되도록 진행 방향을 뒤집는 도로 수를 적게 하고 싶다.

JOI 왕국의 도시와 도로 정보, 정수 L이 주어졌을 때, 몇 개의 도로의 진행 방향을 뒤집어 퍼레이드를 열 수 있는지 판정하고, 열 수 있다면 퍼레이드를 열기 위해 필요한 진행 방향을 뒤집는 도로 수의 최솟값을 출력하라.

입력

입력은 다음 형식으로 표준 입력에서 주어진다.

N M L
A1 B1 C1
A2 B2 C2
:
AM BM CM

출력

표준 출력에 퍼레이드를 열기 위해 필요한 진행 방향을 뒤집는 도로 수의 최솟값을 1행으로 출력하라. 단, 어떻게 도로의 진행 방향을 뒤집어도 퍼레이드를 열 수 없는 경우에는 -1을 출력하라.

제한

  • 2 ≦ N ≦ 1 000.
  • 0 ≦ M ≦ 1 000.
  • 1 ≦ L ≦ 1 000 000 000.
  • 1 ≦ Ai ≦ N (1 ≦ i ≦ M).
  • 1 ≦ Bi ≦ N (1 ≦ i ≦ M).
  • Ai ≠ Bi (1 ≦ i ≦ M).
  • (Ai, Bi) ≠ (Aj, Bj) (1 ≦ i < j ≦ M).
  • 1 ≦ Ci ≦ 1 000 000 (1 ≦ i ≦ M).
  • 입력되는 값은 모두 정수이다.

예제5

  1. 예제 1

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

    입력
    3 1 10
    2 1 5
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    4 8 11
    3 1 6
    1 3 6
    2 4 3
    4 2 3
    4 3 6
    3 4 6
    2 1 5
    1 2 5
    
    예상 출력
    0
    
  4. 예제 4

    입력
    5 6 1000000000
    5 2 1
    2 3 1
    3 4 1
    4 2 1
    2 1 1
    1 3 1
    
    예상 출력
    1
    
  5. 예제 5

    입력
    6 15 777777
    1 3 497295
    4 1 422722
    4 5 607164
    2 3 135688
    5 2 995652
    5 1 670296
    3 1 138860
    4 6 736614
    6 3 620085
    2 1 796353
    6 4 949756
    4 2 750680
    6 5 591550
    5 3 229431
    3 2 668173
    
    예상 출력
    2