結果

問題 No.439 チワワのなる木
ユーザー ckawatakckawatak
提出日時 2018-03-29 00:00:52
言語 PyPy3
(7.3.15)
結果
RE  
実行時間 -
コード長 841 bytes
コンパイル時間 617 ms
コンパイル使用メモリ 82,452 KB
実行使用メモリ 93,692 KB
最終ジャッジ日時 2024-06-25 13:54:47
合計ジャッジ時間 5,757 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 39 ms
53,120 KB
testcase_01 AC 37 ms
52,988 KB
testcase_02 AC 38 ms
52,596 KB
testcase_03 AC 38 ms
52,624 KB
testcase_04 AC 38 ms
54,076 KB
testcase_05 AC 38 ms
52,000 KB
testcase_06 AC 38 ms
53,024 KB
testcase_07 AC 37 ms
52,940 KB
testcase_08 AC 39 ms
54,416 KB
testcase_09 AC 38 ms
54,276 KB
testcase_10 AC 39 ms
53,008 KB
testcase_11 AC 38 ms
52,940 KB
testcase_12 AC 39 ms
53,304 KB
testcase_13 AC 41 ms
54,472 KB
testcase_14 AC 44 ms
56,360 KB
testcase_15 AC 84 ms
77,088 KB
testcase_16 AC 91 ms
77,224 KB
testcase_17 AC 89 ms
77,552 KB
testcase_18 AC 343 ms
88,512 KB
testcase_19 AC 260 ms
86,856 KB
testcase_20 AC 388 ms
91,348 KB
testcase_21 AC 173 ms
81,604 KB
testcase_22 AC 214 ms
81,708 KB
testcase_23 RE -
testcase_24 RE -
testcase_25 AC 246 ms
92,760 KB
testcase_26 AC 249 ms
92,908 KB
testcase_27 RE -
権限があれば一括ダウンロードができます

ソースコード

diff #

N = int(input())
S = input()
G = [ [] for _ in range(len(S))]

for i in range(N-1):
    a,b = sorted(list(map(int, input().split(' '))))
    G[a-1].append(b-1)
    G[b-1].append(a-1)

tc = 0
tw = 0
for s in S:
    if s == 'c':
        tc += 1
    else:
        tw += 1

cc = [0 for _ in range(len(S))]
cw = [0 for _ in range(len(S))]
count = 0

def dfs(current, parent):
    global count
    if S[current] == 'c':
        cc[current] += 1
    else:
        cw[current] += 1

    for adj in G[current]:
        if adj != parent:
            dfs(adj, current)
            cc[current] += cc[adj]
            cw[current] += cw[adj]
            if S[current] == 'w':
                count += cc[adj] * (tw-1-cw[adj])

    if parent != -1 and S[current] == 'w':
        count += (tc-cc[current]) * (cw[current]-1)
        
dfs(0, -1)
print(count)
0