제설차 두 대

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

요약
S에서 출발하는 두 대의 제설차가 트리의 모든 도로를 청소할 때 필요한 최소 총 연료량을 구하는 문제입니다.
난이도

보통10점 중 7점

유형
트리, 동적 계획법, DFS
정답자
아직 제출이 없습니다

문제

도시는 교차로와 그것들을 잇는 도로로 이루어져 있다. 폭설이 내린 뒤 시장 Milan은 겨울 관리반에게 정해진 도로들의 눈을 치우게 한다. 이 도로들은 개수가 최소가 되도록 고르되, 여전히 모든 두 교차로 사이에 정확히 하나의 경로가 존재하도록 선택된다. 즉, NN개의 교차로 위에서 트리를 이룬다.

겨울 관리반에는 Mirko와 Slavko가 각각 모는 제설차 두 대가 있다. 두 제설차는 모두 같은 교차로 SS에서 출발한다.

제설차는 1미터를 달릴 때마다 연료 1리터를 소모하며, 이미 눈이 치워진 도로를 지나갈 때에도 마찬가지다. 두 제설차는 함께 정해진 모든 도로를 적어도 한 번씩 치워야 한다. 각 제설차는 SS에서 시작하는 하나의 경로를 따라 이동하고, 모든 도로가 치워지면 마지막으로 도착한 교차로에 주차한다. Mirko와 Slavko가 같은 교차로에서 끝낼 필요는 없다.

두 제설차가 소모하는 연료의 최소 총합을 구하여라.

입력

첫째 줄에 두 정수 NN과 SS가 주어진다 (1≤N≤100 0001 \le N \le 100\,000, 1≤S≤N1 \le S \le N). NN은 교차로의 수, SS는 출발 교차로의 번호이다. 교차로는 11번부터 NN번까지 번호가 매겨져 있다.

다음 N−1N-1개의 줄에는 각각 세 정수 AA, BB, CC가 주어진다 (1≤C≤10001 \le C \le 1000). 이는 교차로 AA와 BB가 길이 CC미터의 도로로 직접 연결되어 있음을 뜻한다.

출력

모든 도로의 눈을 치우는 데 필요한 연료의 최소 총합을 정수 하나로 출력한다.

예제3

  1. 예제 1

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

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

    입력
    4 1
    1 3 2
    1 2 3
    1 4 4
    
    예상 출력
    11