Cod sursa(job #3323259)

Utilizator zavragiudavid dragoi zavragiu Data 17 noiembrie 2025 22:01:08
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <cstring>
#include <cmath>
#include <fstream>
#include <bitset>
#include <vector>
using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int dp[16005], n, v[16005];
vector<int> G[16005];
bitset<16002> viz;

void DFS(int x)
{
	viz[x] = true;
	for(int w : G[x])
		if (!viz[w])
		{
			DFS(w);
			if (dp[w] > 0) dp[x] += dp[w];
		}
}

int main()
{
	int i, j;
	fin >> n;
	for (i = 1; i <= n; i++)
		fin >> v[i];
	for (int t = 1; t < n; t++)
	{
		fin >> i >> j;
		G[i].push_back(j);
		G[j].push_back(i);
	}
	for (i = 1; i <= n; i++)
		dp[i] = v[i];
	DFS(1);
	int ans = -2000;
	for (i = 1; i <= n; i++)
		ans = max(ans, dp[i]);
	fout << ans;
	return 0;
}