113
 правок
Изменения
→Псевдокод
<font color = darkgreen>//в основной процедуре вызываем dfs от корня(root), после этого ответ будет хранится в c[root] </font color = darkgreen>
 '''function''' dfs(x: '''int'''):
    '''for''' (c i : Ch[x])        dfs(ci)        a[x] = max(a[x], b[ci] + w[x][ci] - с[ci])  <font color = darkgreen>// по формуле выше, но без b[x] (прибавим его один раз в конце) </font color = darkgreen>        b[x] += с[ci] 
    a[x] += b[x]                                 <font color = darkgreen>// так как в a[x] пока что хранится только на сколько мы можем увеличить ответ если будем использовать вершину x</font color = darkgreen>                                      
    c[x] = max(a[x], b[x])
