Pagini recente » Cod sursa (job #1381758) | Cod sursa (job #1782455) | Cod sursa (job #1352429) | Cod sursa (job #2034578) | Cod sursa (job #3281004)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n, val[16002], s;
vector<int> G[16002];
int cnt, t1[16002], t2[16002], smax = -1e9;
bitset<16002> viz;
void DFS(int x)
{
viz[x] = true;
s += val[x];
smax = max(smax, s);
for(int w : G[x])
if(!viz[w]) DFS(w);
}
int main()
{
int i, j;
fin >> n;
for(i = 1; i <= n; i++)
fin >> val[i];
for(int t = 1; t < n; t++)
{
fin >> i >> j;
G[i].push_back(j);
}
for(i = 1; i <= n; i++)
{
viz.reset();
s = 0;
DFS(i);
}
fout << smax;
return 0;
}