#arc035b. [arc035_b]アットコーダー王国のコンテスト事情
[arc035_b]アットコーダー王国のコンテスト事情
问题描述
高桥君是AtCoder王国的国王。
作为一个喜欢编程竞赛的国王,他统治着AtCoder王国,每年都会举办一次竞赛。
在这个竞赛中,会出现N个问题。此外,在排名时还存在一个称为“惩罚”的元素。当解决一个问题时,会根据从比赛开始到现在所经过的时间产生相应的惩罚,而每个问题都会有自己的惩罚。这些惩罚的总和称为竞赛的惩罚。请注意,这与ARC的惩罚规则不同。
你是一位非常优秀的公民,能够解决所有的问题。而且你知道对于每个问题,你需要花费多少时间才能解决,并且只要用这段时间解决问题,就一定能得到正确的答案。
由于你可以按照任意顺序解决问题,所以你想要使竞赛的惩罚最小化。
请计算出解决所有问题时的竞赛惩罚的最小值,以及有多少种这样的解法,将结果模除并输出。
输入
输入数据从标准输入读取,格式如下:
:
- 第1行是一个整数,表示竞赛中的问题数量 。
- 第2行到第行,每行表示解决每个问题所需的时间信息。其中第行包含一个整数 ,表示解决第个问题需要分钟。
部分分
此问题设有部分分。
- 在得到100分中的50分的测试样例中,使得竞赛惩罚最小化的解法的数量为1。
输出
输出结果以以下格式打印到标准输出:
- 第1行:输出竞赛惩罚的最小值。请注意32位整数可能会溢出。
- 第2行:输出使竞赛惩罚最小化的解法的数量,结果需要模除。
示例1
2
20
10
输出1
40
1
最好先解决第2题,然后再解决第1题。
- 比赛开始(时间:0分钟)。
- 10分钟后,解决第2题(时间:10分钟)。此时产生的惩罚是10分钟。
- 再过20分钟,解决第1题(时间:30分钟)。此时产生的惩罚是30分钟。
竞赛惩罚为40(=10+30)分钟。
示例2
5
2
1
2
1
2
输出2
21
12
示例3
13
1
1
1
1
1
1
1
1
1
1
1
1
1
输出3
91
227020758
无论以什么顺序解决问题都可以。不要忘记要对结果取模。