(int x)
| 271 | } |
| 272 | |
| 273 | public static long query(int x) { |
| 274 | long ans = addCost[x]; |
| 275 | for (int cur = x, fa = centfa[cur]; fa > 0; cur = fa, fa = centfa[cur]) { |
| 276 | int dist = getDist(x, fa); |
| 277 | ans += addCost[fa]; |
| 278 | ans -= minusCost[cur]; |
| 279 | ans += (sum[fa] - sum[cur]) * dist; |
| 280 | } |
| 281 | return ans; |
| 282 | } |
| 283 | |
| 284 | public static long compute(int u) { |
| 285 | long ans = query(u); |