Submission #307025

#TimeUsernameProblemLanguageResultExecution timeMemory
307025jovan_bPower Plant (JOI20_power)C++17
0 / 100
4 ms4992 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; string s = "0"; int res; int dp[200005]; vector <int> graf[200005]; void dfs(int v, int par){ for(auto c : graf[v]){ if(c == par) continue; dfs(c, v); dp[v] += dp[c]; } dp[v] += (s[v]-'0'); res = max(res, dp[v]); dp[v] -= 2*(s[v]-'0'); if(dp[v] < 0) dp[v] += 2*(s[v]-'0'); if(dp[v] == 0 && s[v] == '1') dp[v] = 1; //cout << v << " " << dp[v] << endl; } int main(){ ios_base::sync_with_stdio(false), cin.tie(0); cout.precision(10); cout << fixed; int n; cin >> n; for(int i=1; i<n; i++){ int a, b; cin >> a >> b; graf[a].push_back(b); graf[b].push_back(a); } string g; cin >> g; s += g; dfs(1, 0); cout << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...