#L0622. 三色树染色

三色树染色

题目描述

一棵二叉树可以用如下规则表示成一个由 001122 组成的字符序列,我们称之为二叉树编码 SS

$$S=\begin{cases} 0 & \text{表示该节点没有子节点}\\ 1S_1 & \text{表示该节点有一个子节点,}S_1\text{为其子树的编码}\\ 2S_1S_2 & \text{表示该节点有两个子节点,}S_1\text{ 和 }S_2\text{ 分别为左右子树的编码} \end{cases}$$

例如,一棵二叉树可以用编码 S=21200110S=\texttt{21200110} 来表示。

现在要对这棵二叉树的每个节点染色。每个节点可以染成红、绿、蓝三种颜色之一,且必须满足:

  • 一个节点与其子节点的颜色不同;
  • 如果该节点有两个子节点,则这两个子节点的颜色也不同。

给定二叉树编码,求这棵树中最多和最少分别有多少个点可以被染成绿色。

输入格式

输入只有一行,一个字符串 ss,表示二叉树编码。

输出格式

输出只有一行,包含两个整数,依次表示最多和最少有多少个点可以被染成绿色。

样例

1122002010
5 2

提示

对于全部的测试点,保证 1s5×1051 \le |s| \le 5 \times 10^5ss 中只含字符 012

难度 普及+/提高-
通过率
尝试 0
已通过 0
ID
1350
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者