핵의 불꽃
시간 제한8초메모리 제한512 MB
각 정점에 시민 수와 대피소 수용 인원이 주어진 가중 무방향 그래프에서 L일 미만으로 대피소에 도달할 수 있는 최대 인원을 구한다.
문제
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로 끝난다. 각 줄의 모든 정수는 공백으로 구분된다.
출력
각 테스트 케이스마다 살아남을 수 있는 사람의 최대 수를 한 줄에 출력한다.