Pagini recente » Cod sursa (job #2182197) | Cod sursa (job #2790937) | Cod sursa (job #1366952) | Statistici Andrei Ghinea (yeu1) | Cod sursa (job #1888549)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
#define pb push_back
const int MaxN=20005;
int maximus=-0x3f3f3f3f;
int N;
vector<int> G[MaxN];
int c[MaxN];
bool viz[MaxN];
void Read();
int DFS(int x);
int main()
{
Read();
DFS(1);
fout<<maximus<<'\n';
fout.close();
return 0;
}
void Read()
{
fin>>N;
for(int i=1;i<=N;++i)
fin>>c[i];
for(int i=1;i<=N;++i)
{
int x,y;
fin>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
fin.close();
}
int DFS(int x)
{
int el=c[x],w;
viz[x]=true;
for(const int y : G[x])
if(!viz[y])
{
w=DFS(y);
if(w>0)
el+=w;
}
maximus=max(maximus,el);
return el;
}