#P3067. [USACO12OPEN] 平衡子集

[USACO12OPEN] 平衡子集

题目描述

我们定义一个奶牛集合 SS 是平衡的,当且仅当满足以下两个条件:

  • SS 非空。
  • SS 可以被划分成两个集合 A,BA,B,满足 AA 里的奶牛产奶量之和等于 BB 里的奶牛产奶量之和。划分的含义是,AB=SA\cup B=SAB=A\cap B=\varnothing

现在给定大小为 nn 的奶牛集合 SS,询问它有多少个子集是平衡的。请注意,奶牛之间是互不相同的,但是它们的产奶量可能出现相同。

输入格式

第一行一个整数 nn,表示奶牛的数目。

22n+1n+1 行,每行一个数 aia_i,表示每头奶牛的产奶量。

输出格式

输出一个数表示方案总数。

样例解释

共存在三种方案。集合 {1,2,3}\{1,2,3\} 可以划分为 {1,2}\{1,2\}{3}\{3\};集合 {1,3,4}\{1,3,4\} 可以划分为 {1,3}\{1,3\}{4}\{4\};集合 {1,2,3,4}\{1,2,3,4\} 可以划分为 {1,4}\{1,4\}{2,3}\{2,3\},共 33 种子集。

数据范围及约定

对于全部数据,保证 1n201\le n\le 201ai1081\le a_i\le 10^8

4 
1 
2 
3 
4
3