Cod sursa(job #3309484)

Utilizator mihai.25Calin Mihai mihai.25 Data 5 septembrie 2025 12:51:46
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>

#include <vector>

#define DIM 16002

using namespace std;

vector<int> L[DIM];

int u[DIM], v[DIM], s[DIM];

int sol, n, x, y;

void dfs(int nod) {
	
	u[nod] = 1;
	
	s[nod] = v[nod];
	
	for (int i=0;i<L[nod].size();i++) {
		
		int fiu = L[nod][i];
		
		if (u[fiu] == 0) {
			
			dfs(fiu);
			
			if (s[fiu] > 0)
				s[nod] += s[fiu];
		}
	}

	sol = max(sol, s[nod]);
}

int main () {
	
	sol = -1000000000;
	
	ifstream fin ("asmax.in");
	
	ofstream fout("asmax.out");
	
	fin>>n;
	
	for (int i=1;i<=n;i++) {
		
		fin >>v[i];
		
		sol = max(sol, v[i]);
	}

	for (int i=1;i<n;i++) {
		
		fin>>x>>y;
		
		L[x].push_back(y);
		
		L[y].push_back(x);
	}
	
	dfs(1);
	
	fout<<sol;
	
	return 0;
}