結果
| 問題 | No.872 All Tree Path | 
| コンテスト | |
| ユーザー |  ttr | 
| 提出日時 | 2020-02-04 12:53:35 | 
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 1,384 ms / 3,000 ms | 
| コード長 | 691 bytes | 
| コンパイル時間 | 151 ms | 
| コンパイル使用メモリ | 12,800 KB | 
| 実行使用メモリ | 60,852 KB | 
| 最終ジャッジ日時 | 2024-09-21 07:18:43 | 
| 合計ジャッジ時間 | 13,586 ms | 
| ジャッジサーバーID (参考情報) | judge1 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 18 | 
ソースコード
import sys
input = sys.stdin.buffer.readline
from collections import deque
import heapq
N = int(input())
E = [[] for _ in range(N)]
m = 10**3
for _ in range(N-1):
    u,v,w = map(int, input().split())
    E[u-1].append((v-1)*m+w)
    E[v-1].append((u-1)*m+w)
q = deque()
q.append(0)
used = [0]*N
used[0] = 1
L = [0]
while q:
    v = q.pop()
    for e in E[v]:
        if used[e//m]:
            continue
        used[e//m] = 1
        q.append(e//m)
        L.append(e//m)
ans = 0
num = [1]*N
used = [0]*N
L.reverse()
for v in L:
    used[v] = 1
    for e in E[v]:
        if used[e//m]:
            continue
        ans += num[v]*(N-num[v])*(e%m)
        num[e//m] += num[v]
print(2*ans)
            
            
            
        