[JRKSJ R5] 1-1 B

题目背景

本题是 1-1 的较难版本,较易版本为 [1-1 A](https://www.luogu.com.cn/problem/P8847)。

题目描述

给出一个序列 $a$,$\forall i\in [1,n],a_i\in \{1,-1\}$。 询问有多少个将 $a$ 重排后的序列使得该序列的最大子段和最小化。 称两个序列不同,当且仅当这两个序列有任意一个位置上的数不同。

输入输出格式

输入格式


第一行一个整数 $n$。 第二行 $n$ 个整数表示 $a$。

输出格式


一个整数表示答案。答案对 $998244353$ 取模。

输入输出样例

输入样例 #1

4
1 -1 1 -1

输出样例 #1

3

输入样例 #2

5
1 1 1 -1 1

输出样例 #2

3

输入样例 #3

10
1 1 1 1 1 1 1 -1 -1 -1

输出样例 #3

40

说明

最大子段和的定义:序列中一段区间的和的最大值。即 $\max_{1\le l\le r\le n} \sum_{i=l}^r a_i$。 ### 数据规模 本题采用捆绑测试。 | $\text{Subtask}$ | $n\le$ | $\text{Score}$ | | :----------: | :----------: | :----------: | | $1$ | $10$ | $20$ | | $2$ | $100$ | $20$ | | $3$ | $500$ | $20$ | | $4$ | $10^4$ | $40$ | 对于 $100\%$ 的数据,$1\le n\le 10^4$,$a_i\in \{1,-1\}$。