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

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

숲을 지나는 산책

면접 대비

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

요약
가중치가 있는 무방향 그래프에서 1번에서 2번으로 가는 경로 중, 각 단계마다 2번까지의 최단 거리가 엄격히 줄어드는 경로의 수를 센다.
난이도

보통10점 중 6점

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

문제

지미는 요즘 직장에서 스트레스를 많이 받고 있습니다. 특히 사고 이후로 일하기가 더 힘들어졌습니다. 힘든 하루를 마치고 긴장을 풀기 위해 지미는 걸어서 집에 가는 것을 좋아합니다. 다행히 그의 사무실은 숲의 한쪽에, 집은 반대쪽에 있어서 새와 다람쥐를 구경하며 숲을 가로질러 걷는 즐거운 산책을 할 수 있습니다.

숲이 아름답기 때문에 지미는 매일 서로 다른 경로로 걷고 싶어 합니다. 또한 어두워지기 전에 집에 도착하고 싶어서, 항상 집을 향해 진전이 있는 길만 걷습니다.

구체적으로, 교차로 AA에서 교차로 BB로 가는 길은 BB에서 집까지의 최단 거리가 AA에서 집까지의 최단 거리보다 엄격하게 짧을 때에만 진전으로 인정됩니다. 지미가 사무실에서 집까지 갈 수 있는 서로 다른 경로가 몇 가지인지 구하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어지며, 마지막에 00 하나만 있는 줄이 옵니다.

길이 만나는 각 교차로에는 11번부터 번호가 매겨져 있습니다. 지미의 사무실은 11번 교차로이고, 그의 집은 22번 교차로입니다.

각 테스트 케이스의 첫 줄에는 교차로의 수 NN (1<N≤10001 < N \le 1000)과 길의 수 MM이 주어집니다. 이어지는 MM개의 줄에는 각각 서로 다른 두 교차로 aa, bb와 정수 거리 dd (1≤d≤10000001 \le d \le 1000000)가 주어지며, 이는 교차로 aa와 bb 사이에 길이가 dd인 길이 있음을 의미합니다. 지미는 어떤 길이든 원하는 방향으로 걸을 수 있으며, 임의의 두 교차로 사이에는 최대 하나의 길만 존재합니다.

출력

각 테스트 케이스마다 숲을 지나는 서로 다른 경로의 수를 정수 하나로 출력하세요. 이 수는 21474836472147483647을 넘지 않는다고 가정해도 됩니다.

예제1

  1. 예제 1

    입력
    5 6
    1 3 2
    1 4 2
    3 4 3
    1 5 12
    4 2 34
    5 2 24
    7 8
    1 3 1
    1 4 1
    3 7 1
    7 4 1
    7 5 1
    6 7 1
    5 2 1
    6 2 1
    0
    
    예상 출력
    2
    4