만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

곡물

시간 제한3초메모리 제한1024 MB

요약
왕자의 성이 하나씩 세워질 때마다, 1번 마을을 포함한 모든 성 쌍 사이 도로 거리 합의 두 배를 출력합니다.
난이도

보통10점 중 7점

유형
트리, 세그먼트 트리, DFS
정답자
아직 제출이 없습니다

문제

바이토시아는 아름다운 나라이며, 바이타자르 222세 왕이 공정하게 다스린다. 이 나라에는 nn개의 마을이 있고, 마을에는 1번부터 nn번까지 번호가 붙어 있다. 마을들은 n−1n-1개의 도로로 서로 이어져 하나의 연결된 망을 이룬다. 1번 마을에는 왕의 성이 있다.

왕에게는 곧 성년이 되는 아들이 kk명 있다. 성년이 된 왕자마다 자신의 성이 필요하므로, 일부 마을에 새 성이 세워진다.

왕과 아들들은 바이토시아의 안전 같은 사안을 서로 연락하며 논의해야 한다. 이를 위해 매일 각 성에서 다른 모든 성으로 전령이 보내진다. 전령이 탄 말은 출발 전에 곡물을 먹어야 하며, 말은 이동한 거리 1킬로미터마다 곡물 1데카그램을 먹는다.

두 성이 서로 완전히 연락하려면 전령이 두 명 필요하다. 한 전령은 첫 번째 성에서 두 번째 성으로, 다른 전령은 그 반대 방향으로 출발한다. 새 성이 세워질 때마다 바이토시아의 하루 곡물 수요량을 구하는 프로그램을 작성하라.

입력

첫 줄에 두 정수 nn과 kk가 주어진다 (1≤k<n≤1000001 \le k < n \le 100000). nn은 마을의 수이고 kk는 왕자의 수이다.

이어서 n−1n-1개의 줄에 도로 정보가 주어진다. 각 줄에는 세 정수 aa, bb, cc가 주어지며, 이는 마을 aa와 마을 bb를 잇는 길이 cc킬로미터의 도로를 뜻한다 (1≤a,b≤n1 \le a, b \le n, 1≤c≤10001 \le c \le 1000).

이어서 kk개의 줄에 성을 세울 마을 번호 dd가 한 줄에 하나씩 주어진다 (2≤d≤n2 \le d \le n). 한 마을에는 성이 최대 하나만 세워지므로, 주어지는 dd는 모두 서로 다르다.

출력

kk개의 줄을 출력한다. ii번째 줄에는 ii번째 왕자의 성이 세워진 뒤 전령들에게 필요한 곡물의 양(데카그램)을 출력한다.

예제1

  1. 예제 1

    입력
    5 3
    1 4 3
    3 1 6
    1 2 5
    4 5 1
    5
    3
    2
    
    예상 출력
    8
    40
    90