#include<bits/stdc++.h>
using namespace std;
using ll=long long;
#define fr(i,n) for(int i=0;i<(n);++i)
#define Fr(i,n) for(int i=1;i<=(n);++i)
#define ifr(i,n) for(int i=(n)-1;i>=0;--i)
#define iFr(i,n) for(int i=(n);i>0;--i)

vector<ll> r,a,d;
vector<vector<int>> e;

void rec(int i=0,int p=-1){
    d[i]=a[i];
    for(auto&j:e[i]) if(j!=p){
            rec(j,i);
            d[i]+=d[j];
        }
}

ll mn=LLONG_MAX,S{};
void rec2(int i=0,int p=-1,ll s=0){
    S+=s;
    mn=min(mn,s);
    for(auto&j:e[i]) if(j!=p){
            rec2(j,i,s-d[j]);
        }
}

int main(){
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    istream& in(cin);
    ostream& out(cout);
    int n,u,v;
    in>>n;
    e.resize(n);
    fr(i,n-1){
        in>>u>>v;
        --u;--v;
        e[u].emplace_back(v);
        e[v].emplace_back(u);
    }
    a.resize(n);
    for(auto&i:a) in>>i;
    fr(i,n){
        in>>u;
        a[i]=u-a[i];
    }
    d.resize(n);
    rec();
    rec2();
    S+=n*(-mn);
    cout<<S<<endl;
}
