#T1036. 子集和(Subset Sum)

0

子集和(Subset Sum)

子集和(Subset Sum)

题目描述

给定 nn 个数字 a1,a2,…,ana_1,a_2,\dots,a_n 构成一个集合(本题中所指的集合元素允许相等),请计算有多少子集的和大于 00?

输入格式

第一行,输入一个整数 nn。

第二行,nn 个整数 a1,a2,…,ana_1,a_2,\dots,a_n。

输出格式

一个整数表示答案。

样例输入 #1

3
-1 -2 4

样例输出 #1

4

数据范围

【样例解释】

4>04 > 0, 4−1>04 - 1 > 0, 4−2>04-2>0, 4−2−1>04-2-1>0。

【数据范围】

50%50\% 的数据,1≤n≤20,−1000≤ai≤10001\le n \le 20,-1000 \le a_i \le 1000;

100%100\% 的数据,1≤n≤40,−109≤ai≤1091\le n \le 40,-10^9 \le a_i \le 10^9。

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1400。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 25 2~8 小规模与边界测试数据
2 30 9~16 中等规模测试数据
3 35 17~25 满规模极限测试数据

出处:原题链接