#include <bits/stdc++.h>
using namespace std;
#define pb push_back
typedef long long ll;
int k[1005];
int dp[1005][1025];
vector<int>adj[1005];
int dfs(int ele,int par,int xorr,int flag,int len)
{
int sum1=0,sum2=0,sum=0;
if(flag==1)
{
if(len==1)
{
for(int i=0;i<adj[ele].size();i++)
{
if(adj[ele][i]!=par)
{
sum+=dfs(adj[ele][i],ele,xorr,0,xorr);
}
}
}
else
{
for(int i=0;i<adj[ele].size();i++)
{
if(adj[ele][i] != par)
{
sum += dfs(adj[ele][i],ele,xorr,1,len-1);
}
}
}
return sum;
}
else
{
if(dp[ele][xorr] != -1)
{
return dp[ele][xorr];
}
int p = adj[ele].size();
for(int i=0;i<p;i++)
{
if(adj[ele][i] != par)
{
sum1 += dfs(adj[ele][i],ele,xorr,0,xorr);
int uu = (xorr^k[ele-1]);
if(uu == 0)
{
sum2 += dfs(adj[ele][i],ele,uu,0,uu);
}
else
{
sum2 += dfs(adj[ele][i],ele,uu,1,uu);
}
}
}
sum2 += k[ele-1];
dp[ele][xorr] = max(sum1,sum2);
return dp[ele][xorr];
}
}
int main()
{
int n;
cin>>n;
assert(n>=1 && n<=1000);
for(int i=0;i<=1001;i++)
{
for(int j=0;j<=1200;j++)
{
dp[i][j] = -1;
}
}
for(int i=0;i<n;i++)
{
cin>>k[i];
assert(k[i]>=0 && k[i]<=1023);
}
for(int i=1;i<=n-1;i++)
{
int x,y;
cin>>x>>y;
assert(x>=1 && x<=n);
assert(y>=1 && y<=n);
adj[x].pb(y);
adj[y].pb(x);
}
cout<<dfs(1,-1,0,0,0)<<endl;
}
ICNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgICNkZWZpbmUgcGIgcHVzaF9iYWNrCiAgICB0eXBlZGVmIGxvbmcgbG9uZyBsbDsKICAgIGludCBrWzEwMDVdOwogICAgaW50IGRwWzEwMDVdWzEwMjVdOwogICAgdmVjdG9yPGludD5hZGpbMTAwNV07CiAKICAgIGludCBkZnMoaW50IGVsZSxpbnQgcGFyLGludCB4b3JyLGludCBmbGFnLGludCBsZW4pCiAgICB7CiAKICAgICAgICBpbnQgc3VtMT0wLHN1bTI9MCxzdW09MDsKICAgICAgICBpZihmbGFnPT0xKQogICAgICAgIHsKICAgICAgICAgICAgaWYobGVuPT0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGk9MDtpPGFkaltlbGVdLnNpemUoKTtpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoYWRqW2VsZV1baV0hPXBhcikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN1bSs9ZGZzKGFkaltlbGVdW2ldLGVsZSx4b3JyLDAseG9ycik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBpPTA7aTxhZGpbZWxlXS5zaXplKCk7aSsrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGlmKGFkaltlbGVdW2ldICE9IHBhcikKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN1bSArPSBkZnMoYWRqW2VsZV1baV0sZWxlLHhvcnIsMSxsZW4tMSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAKICAgICAgICAgICAgaWYoZHBbZWxlXVt4b3JyXSAhPSAtMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuIGRwW2VsZV1beG9ycl07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IHAgPSBhZGpbZWxlXS5zaXplKCk7CiAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8cDtpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGFkaltlbGVdW2ldICE9IHBhcikKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBzdW0xICs9IGRmcyhhZGpbZWxlXVtpXSxlbGUseG9yciwwLHhvcnIpOwogICAgICAgICAgICAgICAgICAgIGludCB1dSA9ICh4b3JyXmtbZWxlLTFdKTsKICAgICAgICAgICAgICAgICAgICBpZih1dSA9PSAwKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3VtMiArPSBkZnMoYWRqW2VsZV1baV0sZWxlLHV1LDAsdXUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBzdW0yICs9IGRmcyhhZGpbZWxlXVtpXSxlbGUsdXUsMSx1dSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1bTIgKz0ga1tlbGUtMV07CiAgICAgICAgICAgIGRwW2VsZV1beG9ycl0gPSBtYXgoc3VtMSxzdW0yKTsKICAgICAgICAgICAgcmV0dXJuIGRwW2VsZV1beG9ycl07CiAgICAgICAgfQogICAgfQogICAgaW50IG1haW4oKQogICAgewogICAgICAgIGludCBuOwogICAgICAgIGNpbj4+bjsKICAgICAgICBhc3NlcnQobj49MSAmJiBuPD0xMDAwKTsKICAgICAgICBmb3IoaW50IGk9MDtpPD0xMDAxO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8PTEyMDA7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkcFtpXVtqXSA9IC0xOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgewogICAgICAgICAgICBjaW4+PmtbaV07CiAgICAgICAgICAgIGFzc2VydChrW2ldPj0wICYmIGtbaV08PTEwMjMpOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IGk9MTtpPD1uLTE7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHgseTsKICAgICAgICAgICAgY2luPj54Pj55OwogICAgICAgICAgICBhc3NlcnQoeD49MSAmJiB4PD1uKTsKICAgICAgICAgICAgYXNzZXJ0KHk+PTEgJiYgeTw9bik7CiAgICAgICAgICAgIGFkalt4XS5wYih5KTsKICAgICAgICAgICAgYWRqW3ldLnBiKHgpOwogICAgICAgIH0KICAgICAgICBjb3V0PDxkZnMoMSwtMSwwLDAsMCk8PGVuZGw7CiAgICB9IA==