/*
بسم الله الرحمن الرحيم
Author:
(:Muhammad Aneeq:)
*/
#include <iostream>
#include <vector>
#warning check the output
using namespace std;
int const N=7e4+10;
vector<pair<int,int>>nei[N]={};
int ans[N]={};
int n,k;
int sz[N]={};
int deg[N]={};
bool w1=0;
void dfs(int u,int pet,int p=-1)
{
sz[u]=1;
for (auto [i,w]:nei[u])
{
if (i==p)
continue;
if (w>pet)
{
dfs(i,k-w,u);
ans[u]+=sz[i];
}
else
dfs(i,pet-w,u);
sz[u]+=sz[i];
}
}
void subt2()
{
for (int i=0;i<n;i++)
{
ans[i]+=(i/k)*(n-i-1);
ans[n-i-1]+=(i/k)*(n-i-1);
}
}
inline void solve()
{
cin>>n>>k;
int mx=0;
bool z=0;
for (int i=0;i<n-1;i++)
{
int u,v,w;
cin>>u>>v>>w;
nei[u].push_back({v,w});
nei[v].push_back({u,w});
deg[u]++;
deg[v]++;
z=(z&(w==1));
mx=max(mx,deg[u]);
mx=max(mx,deg[v]);
}
if (mx<=2&&z)
subt2();
else
for (int i=0;i<n;i++)
dfs(i,k);
for (int i=0;i<n;i++)
cout<<ans[i]<<endl;
}
int main()
{
ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
int t=1;
for (int i=1;i<=t;i++)
{
solve();
}
}
Compilation message (stderr)
Main.cpp:9:2: warning: #warning check the output [-Wcpp]
9 | #warning check the output
| ^~~~~~~
# | 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... |