This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
long long N,K, p[100005][20], depth[100005], dist[100005];
vector< pair<long long,long long> > lst[100005];
pair<long long,long long> furthest;
void dfs (long long x, long long par, long long d, long long l) {
    p[x][0] = par, depth[x] = l, dist[x] = d;
    for (auto v: lst[x]) if (v.first != par) dfs(v.first, x, d+v.second,l+1);
}
void dfs2 (long long x, long long p, long long d) {
    furthest = max(furthest, make_pair(d,x));
    for (auto v: lst[x]) if (v.first != p) dfs2(v.first, x, d+v.second);
}
long long lca (long long a, long long b) {
    if (depth[a] < depth[b]) swap(a,b);
    for (long long k = 19; k >= 0; --k) if (p[a][k] != -1 && depth[p[a][k]] >= depth[b]) a = p[a][k];
    if (a == b) return a;
    for (long long k = 19; k >= 0; --k) if (p[a][k] != p[b][k]) a = p[a][k], b = p[b][k];
    return p[a][0];
}
int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    cin >> N >> K;
    for (long long i = 0; i < N-1; ++i) {
        long long u,v,w; cin >> u >> v >> w; u--, v--;
        lst[u].emplace_back(v,w), lst[v].emplace_back(u,w);
    }
    furthest = make_pair(-1,-1);
    dfs2(0,-1,0);
    long long a = furthest.second;
    furthest = make_pair(-1,-1);
    dfs2(a,-1,0);
    long long b = furthest.second;
    dfs(0,-1,0,0);
    for (long long k = 1; k < 20; ++k) for (long long i = 0; i < N; ++i) {
        if (p[i][k-1] == -1) p[i][k] = -1;
        else p[i][k] = p[p[i][k-1]][k-1];
    }
    for (long long i = 0; i < N; ++i) cout << max(dist[i]+dist[a]-dist[lca(a,i)]*2,dist[i]+dist[b]-dist[lca(b,i)]*2) << '\n';
    return 0;
}
| # | 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... |