#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N,K;
cin >> N >> K;
vector<vector<pair<int,int>>> adj(N+1);
for(int i=1;i<N;i++){
int u,v,c;cin>>u>>v>>c;u++;v++;
adj[u].emplace_back(v,c);
adj[v].emplace_back(u,c);
}
vector<int> ans(N+1);
function<int(int,int,int)> dfs = [&](int x,int p,int tot){
int subsize = 1;
for(auto&[v,c]:adj[x])if(v!=p){
if(c>tot){
int t = dfs(v,x,K-c);
ans[x]+=t;
subsize+=t;
} else subsize+=dfs(v,x,tot-c);
}
return subsize;
};
for(int i=1;i<=N;i++)dfs(i,-1,K);
for(int i=1;i<=N;i++)cout<<ans[i]<<'\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... |