import sys # input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### """ 5 * 5 * 6 """ n = ni() s = na() g = [[] for i in range(n)] for _ in range(n-1): a, b = na() a -= 1 b -= 1 g[a].append(b) g[b].append(a) dp = [s[i] for i in range(n)] idx = sorted(range(n), key = lambda i : s[i]) for i in idx: for j in g[i]: if s[j] < s[i]: # print(j + 1, i + 1) dp[i] = max(dp[i], dp[j] + s[i]) # print(idx) # print(dp) print(max(dp))