Pagini recente » Cod sursa (job #3196604) | Cod sursa (job #1717678) | Cod sursa (job #2567662) | Cod sursa (job #68806) | Cod sursa (job #528111)
Cod sursa(job #528111)
using namespace std;
#include<iostream>
#include<fstream>
#include<vector>
#define pb push_back
vector<int> G[16005];
ofstream fout("asmax.out");
int N,M,v[16005],dp[16006],viz[16005],sol=-0x3f3f3f3f;
void dfs(int x)
{
if(!viz[x])
{
viz[x]=1;
vector<int>::iterator it;
//dp[x]=v[x];
for(it=G[x].begin();it<G[x].end();it++)
{ //cout<<" "<<x<<"->"<<*it;
if(!viz[*it])
{
dfs(*it);
if(dp[*it]>0)
dp[x]+=dp[*it];
}
if(dp[x]>sol)
sol=dp[x];
}
}
}
void cit()
{
ifstream fin("asmax.in");
int i,x,y;
fin>>N;
for(i=1;i<=N;i++)
{
fin>>dp[i];
}
for(i=1;i<=N;i++)
{
fin>>x>>y;
G[x].pb(y);
G[y].pb(x);
}
fin.close();
}
int main()
{
cit();
int i;
dfs(1);
fout<<sol<<"\n";
fout.close();
return 0;
}