Cod sursa(job #2991081)

Utilizator NarcisMMic Narcis NarcisM Data 9 martie 2023 00:16:00
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n, v[16001], s[16001], res = -(1 << 28), n1, n2;
vector<int> c[16001];
vector<bool> b(16001);
void dfs(int x){
	b[x] = true, s[x] = v[x];
	for(int i = 0 ; i < c[x].size(); i++){
		if(!b[c[x][i]]){
			dfs(c[x][i]);
			s[x] = max(s[x], s[x] + s[c[x][i]]);
		}
	}
}
int main(){
    fin >> n;
	for(int i = 1; i <= n; i++)
		fin >> v[i];
    for(int i = 1; i < n; i++){
		fin >> n1 >> n2;
		c[n1].push_back(n2);
		c[n2].push_back(n1);
	}
	dfs(1);
	for(int i = 1; i <= n; i++)
		res = max(res, s[i]);
	fout << res;
    return 0;
}