#ATagc037b. [AGC037B] RGB Balls

[AGC037B] RGB Balls

题目描述

3N3N 个带颜色的球,每个球编号从 113N3N。每个球的颜色由长度为 3N3N 的字符串 SS 表示,第 ii 个球的颜色为 SiS_i,若 SiS_iR 则为红色,G 为绿色,B 为蓝色。红色、绿色、蓝色的球各有 NN 个。

高桥君要将这 3N3N 个球分给 NN 个人,使得每个人都能分到一个红球、一个绿球和一个蓝球。此外,分配还需满足以下条件:

  • 对于第 jj 个人,设他拿到的球的编号按升序为 aj<bj<cja_j < b_j < c_j
  • 使得 j(cjaj)\sum_j (c_j - a_j) 的值尽可能小。

请你计算高桥君有多少种分配球的方法。由于答案可能很大,请输出对 998244353998244353 取模的结果。若存在某个人分到的球的集合不同,则认为两种分配方法不同。

输入格式

输入通过标准输入给出,格式如下:

NN SS

输出格式

输出高桥君分配球的方法数对 998244353998244353 取模的结果。

样例 1

输入

3
RRRGGGBBB

输出

216

样例 2

输入

5
BBRGRRGRGGRBBGB

输出

960

说明/提示

限制条件

  • 1N1051 \leq N \leq 10^5
  • S=3N|S| = 3N
  • SS 仅由 RGB 组成,且每种颜色在 SS 中各出现 NN

样例解释 1

例如如下分配方式可以使 j(cjaj)\sum_j (c_j-a_j) 的值最小,为 1818

  • 11 个人分到编号为 1,5,91,5,9 的球。
  • 22 个人分到编号为 2,4,82,4,8 的球。
  • 33 个人分到编号为 3,6,73,6,7 的球。

由 ChatGPT 4.1 翻译