Pagini recente » Cod sursa (job #2055667) | Cod sursa (job #115919) | Cod sursa (job #2524199) | Cod sursa (job #3336776) | Cod sursa (job #3311774)
#include <fstream>
#include <vector>
#define int long long
using namespace std;
ifstream fcin("asmax.in");
ofstream fout("asmax.out");
int n,val[20000],a,b,in[20000],nr,u[20000],rez=-(1<<30),s;
vector <int> v[20000];
inline void dfs(int nod, int p)
{
u[++nr]=val[nod];
for(int i : v[nod]) if(i!=p)
dfs(i,nod);
}
signed main()
{
fcin>>n;
for(int i=1; i<=n; i++)
fcin>>val[i];
for(int i=1; i<n; i++)
{
fcin>>a>>b;
v[a].emplace_back(b);
v[b].emplace_back(a);
}
dfs(1,-1);
for(int i=1; i<=n; i++)
{
if(rez<0) s=0;
s+=u[i];
rez=max(rez,s);
}
fout<<rez;
return 0;
}