제출 #1237316

#제출 시각아이디문제언어결과실행 시간메모리
1237316antromancapPower Plant (JOI20_power)C++20
100 / 100
89 ms25924 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 2e5 + 1;
int n, dp[N], res = 0;
vector<int> adj[N];
char c[N];

void dfs(int u, int p) {
	int mx = 0;
	for (int v : adj[u]) {
		if (v == p) continue;
		dfs(v, u);
		dp[u] += dp[v];
		mx = max(mx, dp[v]);
	}
	if (c[u] == '1') {
		dp[u] = max(1, dp[u] - 1);
		mx++;
	}
	res = max(res, max(mx, dp[u]));
}
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> n;
	for (int i = 1, u, v; i < n; i++) {
		cin >> u >> v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	for (int i = 1; i <= n; i++) cin >> c[i];
	dfs(1, 0);
	cout << res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...