Cod sursa(job #2517423)

Utilizator drknss_Hehe hehe drknss_ Data 3 ianuarie 2020 15:56:24
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ifstream in("asmax.in");
ofstream out("asmax.out");
#define all(a) (a).begin(), (a).end()
#define forn(i,a,b) for (int i = a; i <= b; i++)
#define ff first
#define ss second
#define pb push_back
#define pi pair <int, int>
# define sz(x) (int)((x).size())
#define inf 1000000000
#define int long long
const ll mod = 1000000007;
const int N = 16000 + 11;
int dp[N],viz[N],n,x,y,ans;
vector<int>v[N];
void dfs(int nod){
	viz[nod]=1;
	for(auto it:v[nod]){
		if(!viz[it]){
			dfs(it);
			dp[nod]=max(dp[nod],dp[it]+dp[nod]);
			ans=max(ans,dp[nod]);
		}
	}
}

int32_t main(){
ios_base::sync_with_stdio(0); cin.tie(); cerr.tie(); cout.tie();
	in>>n;
	forn(i,1,n)in>>dp[i];
	forn(i,1,n-1){
		in>>x>>y;
		v[x].pb(y);
		v[y].pb(x);
	}
	dfs(1);
	out<<ans<<'\n';
return 0;
}