Codeforces Round #383 (Div. 1), problem: (D) Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths Solution in C/C++

#include <bits/stdc++.h>
using namespace std;
#define fo(i,a,b) for(int i=(a);i<(b);i++)
#define MOD 1000000007
#define MP make_pair
#define PB push_back
typedef long long ll;

int N, C, sz[500500], x[500500], c[500500], id[500500], mx[500500], dp[500500], len[1<<22], res[500500], rid[500500];
vector<int> ch[500500];

void go (int i) {
	sz[i] = 1, id[i] = C++, rid[id[i]] = i;
	for (int j : ch[i]) {
		x[j] = x[i] ^ c[j], dp[j] = dp[i] + 1;
		go(j), sz[i] += sz[j];
	}
	mx[i] = C;
}

void dfs (int i, bool k) {
	int b = -1;
	for (int j : ch[i]) if (b == -1 || sz[j] > sz[b]) b = j;
	for (int j : ch[i]) if (j != b) dfs(j, 0);
	if (b != -1) dfs(b, 1);
	for (int j : ch[i]) res[i] = max(res[i], res[j]);

	for (int j : ch[i]) if (j != b) {
		fo(t, id[j], mx[j]) {
			fo(o, 0, 22) if (len[x[rid[t]]^(1<<o)] != -1) {
				res[i] = max(res[i], len[x[rid[t]]^(1<<o)] + dp[rid[t]] - 2*dp[i]);
			}
			if (len[x[rid[t]]] != -1) res[i] = max(res[i], len[x[rid[t]]] + dp[rid[t]] - 2*dp[i]);
		}
		fo(t, id[j], mx[j]) len[x[rid[t]]] = max(len[x[rid[t]]], dp[rid[t]]);
	}

	fo(o, 0, 22) if (len[x[i]^(1<<o)] != -1) res[i] = max(res[i], len[x[i]^(1<<o)] - dp[i]);
	if (len[x[i]] != -1) res[i] = max(res[i], len[x[i]] - dp[i]);
	len[x[i]] = max(len[x[i]], dp[i]);

	if (!k) fo(t, id[i], mx[i]) len[x[rid[t]]] = -1;
}

int main () {
	scanf("%d", &N);
	fo(i, 1, N) {
		int p; char t; scanf("%d %c", &p, &t);
		ch[p-1].PB(i), c[i] = (1<<(t-'a'));
	}
	fo(i, 0, 1<<22) len[i] = -1;
	go(0);
	dfs(0, 1);
	fo(i, 0, N) printf("%d ", res[i]); puts("");
	return 0;
}
 

Advertisement

spot_img

Why Viral Kitchen Gadgets...

📢 As an Amazon Associate, I earn from qualifying...

How Viral Kitchen Gadgets...

📢 As an Amazon Associate, I earn from qualifying...

Science of a city:...

When we discuss the world’s greatest metropolises, the conversation...

Stop Buying Cheap Alternatives...

📢 As an Amazon Associate, I earn from qualifying...

Pip Edwards turns heads...

Fashion entrepreneur Pip Edwards knows exactly how to command...

Why Viral Kitchen Gadgets...

📢 As an Amazon Associate, I earn from qualifying...

Why Viral Kitchen Gadgets Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.I stumbled across this while desperately trying to fix a recurring problem in my routine....

How Viral Kitchen Gadgets Is Quietly Changing the Game

📢 As an Amazon Associate, I earn from qualifying purchases.After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell...

Science of a city: The maths, physics, ecology & psychology of urban life

When we discuss the world’s greatest metropolises, the conversation almost invariably revolves around politics, zoning regulations, and economic indicators. Yet, beneath the concrete grid...

Stop Buying Cheap Alternatives This Viral Kitchen Gadgets Is the Real Deal

📢 As an Amazon Associate, I earn from qualifying purchases.If you had told me six months ago that a single purchase would change how...

Pip Edwards turns heads at Derby Day in a very bizarre headpiece – as she shares rare update on new romance with boyfriend Nicholas...

Fashion entrepreneur Pip Edwards knows exactly how to command attention, and her latest appearance at Flemington Racecourse proved to be no exception. Stepping out...

Why Viral Kitchen Gadgets Is Currently Breaking the Internet

📢 As an Amazon Associate, I earn from qualifying purchases.After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell...

Sensex, Nifty may gain 5-8% if external headwinds recede: Baldev Prakash

The Indian equity benchmarks, Sensex and Nifty, could witness a notable rebound of 5% to 8% in the near term provided persistent external headwinds...

Is Viral Kitchen Gadgets Worth Your Money Here Is Our Full Review

📢 As an Amazon Associate, I earn from qualifying purchases.After putting the Viral Kitchen Gadgets through a proper 30-day real-world test, I can tell...

Taiwan’s Ministry of Environment deploys digital twin to simulate urban cooling

As global temperatures continue to climb and metropolitan centers face severe heat island effects, urban planners are turning to high-tech solutions to keep cities...