题库练习 多边形(polygon)

A71946 | 多边形(polygon)

来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

小 R 喜欢玩小木棍。小 R 有 n 根小木棍,第 i (1 \le i \le n) 根小木棍的长度为 a_i

小 X 希望小 R 从这 n 根小木棍中选出若干根小木棍,将它们按任意顺序首尾相连拼成一个多边形。小 R 并不知道小木棍能拼成多边形的条件,于是小 X 直接将条件告诉了他:

对于长度分别为 l_1, l_2, \dots , l_mm 根小木棍,这 m 根小木棍能拼成一个多边形当且仅当 m \ge 3 且所有小木棍的长度之和大于所有小木棍的长度最大值的两倍,即

\sum_{i=1}^{m} l_i > 2 \times \max_{i=1}^{m} l_i

由于小 R 知道了小木棍能拼成多边形的条件,小 X 提出了一个更难的问题:有多少种选择小木棍的方案,使得选出的小木棍能够拼成一个多边形?你需要帮助小 R 求出选出的小木棍能够拼成一个多边形的方案数。两种方案不同当且仅当选择的小木棍的下标集合不同,即存在 1 \le i \le n,使得其中一种方案选择了第 i 根小木棍,但另一种方案未选择。由于答案可能较大,你只需要求出答案对 998, 244, 353 取模后的结果。

输入格式

输入的第一行包含一个正整数 n,表示小 R 的小木棍的数量。

输入的第二行包含 n 个正整数 a_1, a_2, \dots , a_n,表示小 R 的小木棍的长度。

输出格式

输出一行一个非负整数,表示小 R 选出的小木棍能够拼成一个多边形的方案数对 998, 244, 353 取模后的结果。

输入输出样例

输入 #1
5
1 2 3 4 5
输出 #1
9
输入 #2
5
2 2 3 8 10
输出 #2
6
C++ 编辑器
输入
输出