Submission #162292

# Submission time Handle Problem Language Result Execution time Memory
162292 2019-11-07T13:32:35 Z MohamedAhmed04 Mag (COCI16_mag) C++14
0 / 120
523 ms 140136 KB
#include <bits/stdc++.h>

using namespace std ;

const int MAX = 1e6 + 10 ;

vector< vector<int> >adj(MAX) ;
int dp[MAX] ,  arr[MAX] ;
int n ;

int ans1 = 0 , ans2 = 0 ;

void dfs(int node , int par)
{
	int Max = 0 ;
	for(auto &child : adj[node])
	{
		if(child == par)
			continue ;
		dfs(child , node) ;
		dp[node] += dp[child] ;
		if(dp[child] > Max)
			Max = dp[child] ;
		else if(dp[child] == Max && arr[node] == 2)
			ans2 = max(ans2 , Max*2+1) ;
	}
	if(arr[node] != 1)
		dp[node] = 0 ;
	ans1 = max(ans1 , dp[node]) ;
	return ;
}

int main()
{
	ios_base::sync_with_stdio(0) ;
	cin.tie(0) ;
	cin>>n ;
	for(int i = 0 ; i < n-1 ; ++i)
	{
		int x , y ;
		cin>>x>>y ;
		adj[x].push_back(y) ;
		adj[y].push_back(x) ;
	}
	for(int i = 1 ; i <= n ; ++i)
		cin>>arr[i] ;
	int x = *min_element(arr+1 , arr + n+1) ;
	if(x != 1)
		return cout<<x<<"/"<<1<<"\n" , 0 ;
	dfs(1 , -1) ;
	if(ans1*2 < ans2)
		return cout<<ans2<<"/"<<2<<"\n" , 0 ;
	else
		return cout<<ans1<<"/"<<1<<"\n" , 0 ;
}
# Verdict Execution time Memory Grader output
1 Correct 27 ms 23800 KB Output is correct
2 Incorrect 25 ms 23800 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 27 ms 23900 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 421 ms 94312 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 26 ms 23800 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 523 ms 140136 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 473 ms 78156 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 452 ms 81132 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 93 ms 29268 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 428 ms 76172 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 474 ms 78780 KB Output isn't correct
2 Halted 0 ms 0 KB -