Submission #488537

#TimeUsernameProblemLanguageResultExecution timeMemory
488537AdamGSPower Plant (JOI20_power)C++14
100 / 100
140 ms28812 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() const int LIM=2e5+7; vector<int>V[LIM]; int dp[LIM], ans; string S; void DFS(int x, int o) { for(auto i : V[x]) if(i!=o) { DFS(i, x); if(S[x]=='1') ans=max(ans, dp[i]+1); dp[x]+=dp[i]; } if(S[x]=='1') --dp[x]; dp[x]=max(dp[x], S[x]-'0'); ans=max(ans, dp[x]); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; rep(i, n-1) { int a, b; cin >> a >> b; --a; --b; V[a].pb(b); V[b].pb(a); } cin >> S; DFS(0, 0); cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...