Submission #1158561

#TimeUsernameProblemLanguageResultExecution timeMemory
1158561alexander707070Power Plant (JOI20_power)C++20
47 / 100
1596 ms12360 KiB
#include<bits/stdc++.h> #define MAXN 200007 using namespace std; int n,a,b,ans,dp[MAXN],cnt; char c[MAXN]; vector<int> v[MAXN]; int dfs(int x,int p){ dp[x]=c[x]-'0'; int sum=0; for(int i:v[x]){ if(i==p)continue; sum+=dfs(i,x); } dp[x]=max(dp[x],sum-dp[x]); return dp[x]; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for(int i=1;i<=n-1;i++){ cin>>a>>b; v[a].push_back(b); v[b].push_back(a); } for(int i=1;i<=n;i++){ cin>>c[i]; if(c[i]=='1')cnt++; } ans=min(cnt,2); for(int i=1;i<=n;i++){ ans=max(ans,dfs(i,0)); } cout<<ans<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...