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

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

핵의 불꽃

시간 제한8초메모리 제한512 MB

요약
각 정점에 시민 수와 대피소 수용 인원이 주어진 가중 무방향 그래프에서 L일 미만으로 대피소에 도달할 수 있는 최대 인원을 구한다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, 유니온 파인드, 그리디
정답자
아직 제출이 없습니다

문제

20XX년, 핵폭발이 세계를 불태웠다. 지구상 인구의 절반이 죽었다. 공포스럽다.

한 도시는 다행히 폭발의 직접적인 피해를 입지 않았다. 이 도시는 N개의 돔(1번부터 N번까지)과 돔을 잇는 M개의 양방향 수송 파이프라인으로 이루어져 있다. 돔 i에는 현재 Pi명의 시민이 살고 있고, Ki명을 보호할 수 있는 핵 대피소가 있다. 또한 파이프라인 i의 한쪽 끝에서 다른 쪽 끝까지 이동하는 데 Di일이 걸린다.

이 도시는 오늘로부터 L일 뒤에 핵 방사능에 오염된다는 사실이 밝혀졌다. 따라서 각 시민은 파이프라인을 지나 대피소로 피신해야 한다. 대피소에 L일 이상 걸려서 도착하면 시민은 죽는다.

이 상황에서 살아남을 수 있는 시민은 최대 몇 명인가?

입력

입력은 여러 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 정수 N, M, L로 시작하는 한 줄로 시작한다(1 ≤ N ≤ 100, M ≥ 0, 1 ≤ L ≤ 10000). 이어서 돔을 잇는 수송 파이프라인의 구성을 나타내는 M개의 줄이 주어진다. i번째 줄은 세 정수 Ai, Bi, Di를 포함하며(1 ≤ Ai < Bi ≤ N, 1 ≤ Di ≤ 10000), i번째 파이프라인이 돔 Ai와 Bi를 연결한다는 뜻이다. 어떤 돔 쌍 사이에도 파이프라인은 최대 하나다. 마지막으로 N개의 정수로 이루어진 두 줄이 주어진다. 첫 번째 줄은 P1, . . ., PN을(0 ≤ Pi ≤ 106) 주고 두 번째 줄은 K1, . . ., KN을(0 ≤ Ki ≤ 106) 준다.

입력은 EOF로 끝난다. 각 줄의 모든 정수는 공백으로 구분된다.

출력

각 테스트 케이스마다 살아남을 수 있는 사람의 최대 수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    1 0 1
    51
    50
    2 1 1
    1 2 1
    1000 0
    0 1000
    4 3 5
    1 2 4
    1 3 1
    3 4 2
    0 1000 1000 1000
    3000 0 0 0
    
    예상 출력
    50
    0
    3000