부스터 차량


답안 제출

Points: 15
시간 제한: 2.0s
메모리 제한: 1G

문제 유형

도시 사이를 이동하는 두 대의 차량이 있다. 한 대는 항상 일정한 속도로 이동하는 일반 차량이고, 다른 한 대는 부스터와 냉각 장치를 번갈아 사용하는 부스터 차량이다.

두 차량은 모두 \(1\)번 도시에서 동시에 출발한다. 두 도시를 연결하는 도로에 값 \(d\)가 주어졌을 때 각 차량이 그 도로를 통과하는 데 걸리는 시간은 다음과 같다.

  • 일반 차량은 항상 \(2d\)의 시간이 걸린다.
  • 부스터 차량은 부스터를 사용하는 동안 \(d\)의 시간이 걸린다.
  • 부스터 차량은 냉각 운전을 하는 동안 \(4d\)의 시간이 걸린다.

부스터 차량은 첫 번째 도로에서 부스터를 사용한다. 이후 도로를 하나 통과할 때마다 부스터 사용과 냉각 운전을 번갈아 반복한다. 경로를 바꾸거나 이미 방문한 도시를 다시 방문하더라도 이 순서는 초기화되지 않는다.

두 차량은 각 도시까지 이동할 때 자신에게 걸리는 시간이 가장 짧은 경로를 선택한다. 따라서 두 차량이 선택하는 경로는 서로 다를 수 있다.

일반 차량이 부스터 차량보다 먼저 도착할 수 있는 도시의 수를 구하시오.

입력

첫째 줄에 도시의 수 \(N\)과 도로의 수 \(M\)이 공백으로 구분되어 주어진다.

다음 \(M\)개의 줄에 세 정수 \(a\), \(b\), \(d\)가 공백으로 구분되어 주어진다. 이는 도시 \(a\)와 도시 \(b\)를 연결하는 값이 \(d\)인 양방향 도로를 의미한다.

출력

일반 차량이 부스터 차량보다 먼저 도착할 수 있는 도시의 수를 출력한다.

제한 사항

  • \(2 \le N \le 1,000\)
  • \(N-1 \le M \le \min(100,000, N(N-1)/2)\)
  • \(1 \le a, b \le N\)
  • \(a \ne b\)
  • \(1 \le d \le 100,000\)
  • 주어진 그래프는 연결 그래프이다.
  • 같은 두 도시를 연결하는 도로는 최대 하나만 주어진다.

예제 입력 1

5 6
1 2 3
1 3 2
2 3 2
2 4 4
3 5 4
4 5 3

예제 출력 1

1

예제 설명 1

각 도시까지 이동하는 데 필요한 최소 시간은 다음과 같다.

  • \(1\)번 도시: 두 차량 모두 \(0\)
  • \(2\)번 도시: 일반 차량은 \(6\), 부스터 차량은 \(3\)
  • \(3\)번 도시: 일반 차량은 \(4\), 부스터 차량은 \(2\)
  • \(4\)번 도시: 두 차량 모두 \(14\)
  • \(5\)번 도시: 일반 차량은 \(12\), 부스터 차량은 \(15\)

두 차량의 도착 시간이 같은 \(4\)번 도시는 세지 않는다. 일반 차량이 부스터 차량보다 먼저 도착하는 도시는 \(5\)번 도시뿐이므로 정답은 \(1\)이다.


코멘트

현재 작성된 코멘트가 없습니다.