AT_arc172_c [ARC172C] Election

题目描述

在今年的 AtCoder 市长选举中,有两位候选人 A 和 B 参选,共有 $N$ 名选民进行了投票。每位投票者都被编号为 $1$ 到 $N$,第 $i$ 位投票者($1 \leq i \leq N$)投给了 $c_i$ 候选人。 现在即将进行计票。计票过程中,每次会开出一张选票,并在每次开票后,公布当前的计票结果,结果分为以下三种情况之一: - **结果 A:** 目前为止,A 候选人的得票数更多。 - **结果 B:** 目前为止,B 候选人的得票数更多。 - **结果 C:** 目前为止,A 和 B 的得票数相同。 计票顺序有如下规则:除了投票者 $1$ 的选票外,其他选票必须按照投票者编号从小到大的顺序依次开票(即 $2,3,\dots,N$ 依次开票)。投票者 $1$ 的选票可以在任意时刻开票。 请你计算,所有可能的计票结果序列有多少种。 计票结果序列是指每张票开出时公布的结果 $s_i$(`A`、`B` 或 `C` 之一),即字符串 $s_1 s_2 \dots s_N$。

输入格式

输入通过标准输入给出,格式如下: > $N$ $c_1\ c_2\ \cdots\ c_N$

输出格式

请输出答案。

说明/提示

## 限制条件 - $N$ 是满足 $2 \leq N \leq 1000000$ 的整数。 - $c_1, c_2, \dots, c_N$ 均为 `A` 或 `B`。 ## 样例解释 1 在这个输入样例中,计票顺序可能有以下 $4$ 种: - 按 $1 \to 2 \to 3 \to 4$ 的顺序计票。 - 按 $2 \to 1 \to 3 \to 4$ 的顺序计票。 - 按 $2 \to 3 \to 1 \to 4$ 的顺序计票。 - 按 $2 \to 3 \to 4 \to 1$ 的顺序计票。 计票结果序列分别为 `AAAC`、`AAAC`、`ACAC`、`ACBC`,因此可能的计票结果序列有 $3$ 种。 ## 样例解释 2 无论以何种顺序计票,计票结果序列始终为 `AAAA`。 由 ChatGPT 4.1 翻译