#11380. 目标和

内存限制:256 MiB 时间限制:1000 ms 输入文件: mu.in 输出文件: mu.out
题目类型:传统 评测方式:文本比较
上传者: Turing001

题目描述

给你一个整数数组 a 和一个整数 t 。

向数组中的每个整数前添加 '+' 或 '-' ,然后串联起所有整数,可以构造一个 表达式 :

例如,a = {2, 1} ,可以在 2 之前添加 '+' ,在 1 之前添加 '-' ,然后串联起来得到表达式 "+2-1" 。

输出 通过上述方法构造的、运算结果等于 t 的不同 表达式 的数目。

输入格式

第一行,n

第二行,数组 a 的 n 个非负整数

第三行,t

输出格式

结果等于 t 的 表达式 数目

样例

示例 1:

输入:

5
1 1 1 1 1
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

示例 2:

输入:

1
1
1

输出:

1

数据范围与提示

1 <= n <= 25

0 <= a[i] <= 1000

0 <= a数组所有元素之和 <= 1000

-1000 <= t <= 1000