#174
Diamond III
Konpaku Youmu
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

요우무는 반인반령(반쪽은 사람, 다른 반쪽은 유령)이다. 요우무의 반령은 보통 요우무의 지시에 따라서 움직이지만, 원한다면 자신의 의지로 움직이는 것도 가능하다.

요우무는 잠시 산책을 나와 인간 세상을 둘러보려고 한다. 인간 세상은 NN개의 마을로 나뉘며, 두 마을을 잇는 양방향 도로가 N1N-1개 존재한다. 마을은 11부터 NN까지 순서대로 번호가 매겨져 있고, 도로는 11부터 N1N - 1까지 순서대로 번호가 매겨져 있다. 모든 마을은 도로를 통해서 서로 오갈 수 있다.

요우무와 요우무의 반령은 각자 따로 산책을 하며, 산책을 하는 도중에 가끔씩 요우무가 반령과 자신의 거리가 너무 떨어져 있다고 생각하면 반령을 불러 자신과의 거리가 KK이내가 되는 마을에 오도록 지시한다. 단, 길에서는 연락할 수단이 전혀 없기 때문에 요우무가 반령을 부르기 위해서는 요우무와 반령 모두 마을에 위치해 있어야 하며, 반령은 요우무의 지시를 따르되 최단거리로 움직인다. 이미 요우무와 반령의 거리가 KK이내라면 반령은 움직이지 않는다.

요우무가 마을 uu에 있고 반령이 마을 vv에 있을 때, 요우무가 반령에게 지시를 내린 뒤의 요우무와 반령 사이의 최단 거리를 distK(u,v)dist_K(u,v)라고 하자. distK(u,u)dist_K(u, u)00으로 정의한다. 여러분이 할 일은 모든 (u,v)(u,v)쌍에 대해서 distK(u,v)dist_K(u,v)의 합을 구하는 것이다. 식으로 표현하면 다음과 같다.

u=1Nv=1NdistK(u,v)\sum^{N}_{u=1}\sum^{N}_{v=1}dist_K(u,v)

단, 답이 너무 클 수 있으므로 998244353998\,244\,353으로 나눈 나머지를 구한다.

입력

첫째 줄에 NNKK가 주어진다 (2N100000)(2\le N \le 100\,000), (1K1010)(1\le K \le 10^{10})

둘째 줄부터 N1N-1개의 줄에 걸쳐 세 정수 uiu_iviv_i, cic_i가 공백으로 구분되어 주어진다. 이는 두 마을 uiu_iviv_i를 잇는 길이가 cic_i인 양방향 도로가 존재한다는 의미다. (1ui,viN;1ci100000)(1\le u_i,v_i \le N; 1 \le c_i \le 100\,000)

모든 마을은 도로를 통해서 서로 오갈 수 있다.

출력

주어진 수식의 계산 결과를 998244353998\,244\,353으로 나눈 나머지를 출력한다.

예제 입력 1

3 4
1 2 2
2 3 3

예제 출력 1

15

예제 입력 2

2 1
1 2 10

예제 출력 2

0
문제를 만든 사람
kaorin
알고리즘 분류
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Diamond III1명 투표· 약 2개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.