Problem F: 加加减减*

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:39 Solved:20

Description

         有一个整数数组 nums 和一个整数 target

在数组中的每个整数前添加正号'+' 或负号 '-' ,然后将这些数字求和。

例如,nums = [2, 1] ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,串联起来得到表达式 "+2-1"

返回可以通过上述方法构造的、运算结果等于 target的不同表达式 的数目。注意,数组顺序不可以改变。



示例 1

输入:nums = [1,1,1,1,1], target = 3

输出:5

解释:一共有 5 种方法让最终目标和为 3

-1 + 1 + 1 + 1 + 1 = 3

+1 - 1 + 1 + 1 + 1 = 3

+1 + 1 - 1 + 1 + 1 = 3

+1 + 1 + 1 - 1 + 1 = 3

+1 + 1 + 1 + 1 - 1 = 3

Input

第一行为两个整数n和target。表示数组大小和目标值。
第二行为n个正整数。

Output

输出构造出target的不同表达式的数量。

Sample Input Copy

5 3
1 1 1 1 1

Sample Output Copy

5

HINT

数组长度不超过50。
-1000 <= target <= 1000。