Distinct Colors Cses Solution

[Solved] Distinct Colors Cses Solution | Php - Code Explorer | yomemimo.com
Question : Distinct Colors cses solution

Answered by : kind-katipo-62z6hyjat1w7

#include<bits/stdc++.h>
using namespace std;
#define SZ 200005
int n, m, k, u, v;
vector<int> adj[SZ];
int ans[SZ];
int col[SZ];
set<int> dfs(int u, int p) {	set<int> uniq;	uniq.insert(col[u]);	for(int v: adj[u]) {	if(v!=p) {	set<int> child = dfs(v, u);	if(child.size() > uniq.size()) swap(child, uniq);	for(int color: child) {	uniq.insert(color);	}	}	}	ans[u] = uniq.size();	return uniq;
}
int main() {	cin >> n;	for(int i = 1; i <= n; i++)	cin >> col[i];	for(int i = 0; i < n-1; i++) {	cin >> u >> v;	adj[u].push_back(v);	adj[v].push_back(u);	}	dfs(1, 0);	for(int i=1; i<=n; i++)	cout << ans[i] << " ";
}

Source : https://codeforces.com/blog/entry/79048 | Last Update : Sat, 30 Jul 22

Answers related to distinct colors cses solution

Code Explorer Popular Question For Php