Processing math: 100%
编程题
                ### 问题描述

大衣开了一家医院,有以下几种血型的捐献者共 N 人:

  • 血型 A 的人可以捐血给血型 A 和血型 AB 的人。

  • 血型 B 的人可以捐血给血型 B 和血型 AB 的人。

  • 血型 AB 的人只能捐血给血型 AB 的人。

  • 血型 O​ 的人可以捐血给血型 A​、血型 B​ 和血型 AB​ 的人。

现在给你这 N 名捐献者的血型类型,第 i 个人血型为 C_i,大衣想要选一些人形成捐献链,即 1\rightarrow 3\rightarrow2\rightarrow\dots\rightarrow x,表示第 i 个人捐血给第 i+1​ 个人,求这条链最大长度。

输入格式

第一行输入一个正整数 N​ 表示捐献者数量。

第二行输入 N 个字符串 C_i 表示每个捐献者的血型。

输出格式

输出一个数字表示这条链最大长度。

样例输入1

3
A B A

样例输出1

2

样例输入2

2
A B

样例输出2

1

样例输入3

5
AB A A AB A

样例输出3

5

说明

  • 样例 1​:第 1​ 个人可以捐血给第 3​ 个人,所以该捐献链长度为 2​ 是最长的。

  • 样例 2:没有人可以捐血给别人,因此最长链为单独一个人。

  • 样例 3:最长捐献链为 2\rightarrow3\rightarrow5\rightarrow1\rightarrow4

评测数据规模

对于所有的评测数据,1\le N\le 2\times10^5C_i\in{A,B,AB,O}。

查看答案
赣ICP备20007335号-2