Cod sursa(job #2834811)

Utilizator AACthAirinei Andrei Cristian AACth Data 17 ianuarie 2022 18:18:56
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
#define cin f
#define cout g
// #define int long long
const int Max = 1e5 + 1;
void nos()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
}
int n;
int a[Max];
vector < int > v[Max];
void read()
{
	f>>n;
	int i;
	for(i = 1;i<=n;i++)
		f>>a[i];
	for(i=1;i<n;i++)
	{
		int n1,n2;
		f>>n1>>n2;
		v[n1].push_back(n2);
		v[n2].push_back(n1);
	}
}
int ans = 0;
int dfs(int nod,int p = -1)
{	
	
	int sum = a[nod];
	for(auto vec : v[nod])
		if(vec != p)
			sum += max(0LL,dfs(vec,nod));
	ans = max(ans,sum);
	return sum;
}
void solve()
{
    dfs(1);
    cout<<ans;
}
void restart()
{

}
int32_t main()
{
    nos();

        read();
        solve();
        restart();
    
    return 0;
}