#800. 零元购-Pro

零元购-Pro

题目描述

在零元购活动中,你可以在一定时间内任意挑选商品,将它们加入你的购物车中。计时结束后,若你能从你的购物车中挑选出两件商品,使得它们的总价恰好等于 ww,你就可以完成“零元购”,免费把它们拿下。

求:有多少种方式可以完成“零元购”。

输入格式

第一行:一个整数 nn,表示购物车中商品的数量。

第二行:nn 个整数 a1,a2...ana_1,a_2...a_n,分别表示购物车每件商品的价格。

第三行:一个整数 ww,含义与题目中相同。

输出格式

一个整数,表示能够达成“零元购”条件的商品组合数。若没有任何一种组合可以达成条件,则输出 00

样例

5
10 20 10 20 20
30
6
4
15 15 15 20
40
0

样例 11 解释

55 件商品,价格分别为 102010202010、20、10、20、20,需要从中挑选两件总价为 3030 元的商品,共有 66 种组合:

11 种和第 2/4/52/4/5 种;第 33 种和第 2/4/52/4/5 种。故输出 44

样例 22 解释

44 件商品,价格分别为 1515152015、15、15、20,需要从中挑选 22 件总价为 4040 元的商品,显然没有任何一种组合可以达成条件,故输出 00

数据范围

对于 50%50\% 的数据,1n,ai,x501w10001≤n,a_i,x≤50;1≤w≤1000

对于 100%100\% 的数据,1n,ai,x,w1051≤n,a_i,x,w≤10^5