#include<bits/stdc++.h>
using namespace std;
int a[200001];
vector<int> g[200001];
long long n,t[200001],sum=0,sum1=0,sum2=0,cnt;
int main(){
int u,v,i,j,k;
cin>>n;
for(i=1;i<n;i++){
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}for(i=1;i<=n;i++){
cin>>a[i];
}
int mx1=0,mx2=0;
for(i=1;i<=n;i++){
for(j=0;j<g[i].size();j++){
sum1+=a[g[i][j]];
sum2+=a[g[i][j]]*a[g[i][j]]%10007;
if(a[g[i][j]]>mx1)mx1=a[g[i][j]];
}
for(j=0;j<g[i].size();j++){
if(a[g[i][j]]>mx2&&a[g[i][j]]<mx1)mx2=a[g[i][j]];
}
if(mx1*mx2>cnt)cnt=mx1*mx2;
sum1=sum1*sum1%10007;
if(g[i].size()>1)sum=(sum+sum1-sum2)%10007;
sum1=0;
sum2=0;
mx1=0;
mx2=0;
}
cout<<cnt<<" "<<sum%10007;
}