开始: 2026-09-14 00:00:00

25-26赛季联合赛11

结束: 2026-09-16 14:00:00
当前  2026-09-20 04:38:45  类型: IOI  状态: 已经结束 

P3. 均分金币(gold)
描述

小z 和 小x 找到了一袋 N (1 \leq N \leq 250) 枚金币,他们希望尽可能均匀地分配这些金币。

i 枚金币的价值为 v_i (1 \leq v_i \leq 2,000)。他们希望尽可能均匀地分割这堆金币,但这并不总是可能的。

两个堆之间的最小价值差是多少? 

此外,小z 和 小x 发现可能有多种方法以该最小差异分割金币。他们还想知道以最公平方式分割金币的方法数。

如果无法均匀分割,小z 将得到价值较高的一堆。 例如,考虑一袋五枚金币,价值分别为:2、1、8、416。小z 和 小x 将金币分成两堆,一堆有一枚价值为 16 的金币,另一堆有剩下的金币,价值为 1+2+4+8=15。因此,差异为 16-15 = 1

这是他们以这种方式分割金币的唯一方法,所以均匀分割的方法数只有 1。 

注意,相同价值的金币可以在堆之间交换,以增加执行最佳分割的方法数。

因此,硬币集合 \{1, 1, 1, 1\} 有六种不同的方法分割成两个最佳分区,每个分区有两枚硬币。


输入

第 1 行:一个整数:N

第 2 行到第 N+1 行:第 i+1 行包含一个整数:V_i

输出

第 1 行:一个整数,表示两个分区的最小差异。

第 2 行:一个整数,表示以第 1 行打印的最小差异分割金币的方法数。

由于这个数可能会非常大,输出时请对 1,000,000 取余。

样例

输入

5 
2 
1 
8 
4 
16 

输出

1 
1 
提示

性质A:30%的数据:n\leq 10,1 \leq v_i \leq 2,00;

性质B:20%的数据:100\leq n \leq 250;保证n是一个偶数,所有的v_i都相同

性质C:50%的数据:n\leq 250,1 \leq v_i \leq 2,000;

提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交