#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define tiii tuple<int,int,int>
vector<vector<pii>> adj;
int n, k;
vector<int>ans;
void DFS(int v, int p, int c, vector<int>& sz){
for(auto t : adj[v]){
int u,l;
tie(u,l) = t;
if(u == p) continue;
if(c-l < 0) {
ans[v]+=sz[u];
DFS(u,v,k-l, sz);
}else{
DFS(u,v,c-l,sz);
}
}
}
void DFSsz(int v, int p, vector<int>& sz){
sz[v] = 1;
for(auto t : adj[v]){
int u,l;
tie(u,l) = t;
if(u == p) continue;
DFSsz(u,v, sz);
sz[v] += sz[u];
}
}
int32_t main(){
cin >> n >> k;
adj.resize(n);
ans.resize(n);
for(int i = 0; i < n-1; i++){
int a,b,c;
cin >> a >> b >> c;
adj[a].push_back({b,c});
adj[b].push_back({a,c});
}
for(int i = 0; i < n; i++){
vector<int> sz(n);
DFSsz(i,i,sz);
DFS(i,i,k,sz);
}
for(int i = 0; i < n; i++){
cout << ans[i] << endl;
}
}
# | 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... |