Cod sursa(job #2507286)

Utilizator DavidLDavid Lauran DavidL Data 9 decembrie 2019 21:41:33
Problema Asmax Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 0.74 kb
fi = open("v:/ProiecteC++/asmax.in", "r")
fo = open("v:/ProiecteC++/asmax.out", "w")

viz = [None] * 16005
dp = [None] * 16005
val = [None] * 16005
G = [[] for i in range(1, 16005)]

def citeste():
    ret = fi.readline().split()
    ret = list(map(int, ret))
    return ret

def dfs(nod):
    #print(nod)
    viz[nod] = 1
    dp[nod] = val[nod - 1]

    for v in G[nod]:
        if not viz[v]:
            dfs(v)
            if dp[v] > 0:
                dp[nod] += dp[v]


n = citeste()[0]

val = citeste()

for i in range(0, n - 1):
    u, v = citeste()
    G[u].append(v)
    G[v].append(u)

dfs(1)

ans = -1005
for i in range(1, n + 1):
    ans = max(ans, dp[i])

fo.write(str(ans))

fi.close()
fo.close()