#include <bits/stdc++.h>
using namespace std;
int N, K;
int inp1, inp2, inp3;
vector<int> adjList[70010];
int cnt;
int ans[70010];
void dfs(int x, int p = -1){
cnt++;
ans[x] += ((cnt-1) / K) * (N - cnt);
ans[x] += ((N-cnt) / K) * (cnt - 1);
for(auto it: adjList[x]){
if(p == it) continue;
dfs(it, x);
}
}
int32_t main(){
cin >> N >> K;
for(int a=0; a<N-1; a++){
cin >> inp1 >> inp2 >> inp3;
adjList[inp1].push_back(inp2);
adjList[inp2].push_back(inp1);
}
int rt = 0;
for(int a=0; a<N; a++){
if((int)adjList[a].size() == 1){
rt = a;
}
}
dfs(rt);
for(int a=0; a<N; a++) cout << ans[a] << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |