Pagini recente » Cod sursa (job #1669579) | Cod sursa (job #1833056) | Cod sursa (job #1980963) | Cod sursa (job #1354899) | Cod sursa (job #3332697)
#include <bits/stdc++.h>
using namespace std;
const string nume="asmax";
ifstream f(nume+".in");
ofstream g(nume+".out");
vector<int> graf[16005];
bool viz[16005];
vector<int> val(16005);
int sum, mx;
void dfs(int nod)
{
viz[nod]=1;
for(auto vec : graf[nod])
{
if(!viz[vec])
{
dfs(vec);
if(val[vec]>0)
val[nod]+=val[vec];
}
}
}
int main()
{
int n;
f >> n;
for (int i = 1; i <= n; i++)
{
f>>val[i];
}
for(int i=0;i<n;i++)
{
int a,b;
f>>a>>b;
graf[a].push_back(b);
graf[b].push_back(a);
}
dfs(1);
for(int i=1;i<=n;i++)
if(mx<val[i])
mx=val[i];
g<<*max_element(val.begin()+1,val.end());
return 0;
}