from collections import deque n=int(input()) a=list(map(int,input().split())) b=list(map(int,input().split())) v=[[] for i in range(n)] for i in range(n-1): q,w=map(int,input().split());q-=1;w-=1 v[q].append(w);v[w].append(q) f=deque([(0,0,0)]);dp=[[0]*2 for i in range(n)] while f: q,w,e=f.pop() if len(v[q])>e: f.append((q,w,e+1)) if v[q][e]!=w: f.append((v[q][e],q,0)) else: dp[q]=[a[q],0] for i in v[q]: if i==w: continue dp[q][0]+=max(dp[i]) dp[q][1]+=max(dp[i][0],dp[i][1]+b[i]+b[q]) print(max(dp[0]))