Submission #1305215

#TimeUsernameProblemLanguageResultExecution timeMemory
1305215neonglitchPower Plant (JOI20_power)C++20
0 / 100
2 ms332 KiB
#include <iostream>
#include <vector>
using namespace std;
const int N=2e5+10;
vector<int> ma[N];
int sp[N],dp[N];
void dfs(int x,int p=0)
{
	dp[x]=-sp[x];
	for(auto y:ma[x])
		if(y^p)
			dfs(y,x),dp[x]+=dp[y];
	dp[x]=max(dp[x],sp[x]);
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin>>n;
	for(int i=1;i<n;i++)
	{
		int x,y;
		cin>>x>>y;
		ma[x].push_back(y);
		ma[y].push_back(x);
	}
	for(int i=1;i<=n;i++)
	{
		char c;
		cin>>c;
		sp[i]=c-'0';
	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		if(sp[i])
		{
			dfs(i);
			for(auto y:ma[i])
			{
				ans=max(ans,dp[y]+1);
			}
		}
	}
	cout<<ans<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...