#P718. 生日(bday)

生日(bday)

【问题描述】

多多今天很高兴,因为他的好朋友苹果要过生日了。由于今灭多多得到了两张价值不菲的SHOP购物券,所以他决定买N件礼物送给苹果。

一个下午过去了,多多选好了N件礼物,并且它们的价格之和恰好为两张购物券的面额之和。当多多被自己的聪明所折服,高兴地去结账时,他突然发现SHOP对购物券的使用有非常严格的规定:一次只允许使用一张,不找零,不与现金混用。多多身上根本没有现金,并且他不愿意放弃挑选好的礼物。这就意味着,他只能通过这两张购物卷结账,而且每一张购物券所购买的物品的总价格,必须精确地等于这张购物券的面额。

怎样才能顺利地买回这N件礼物送给苹果呢?本题的任务就是帮助多多确定是否存在一个购买方案。已知其中一张购物券的面额以及所有商品的价格,只需要确定能否找到一种方案使得选出来的物品的价格总和正好是这张购物券的面额即可。

【输入格式】

有多组测试数据。每组数据的第一行为两个整数N和M,分别表示多多一共挑选了N个物品送给苹果以及多多的一张购物券的面额为M。接下来一行有N个用空格隔开的正整数,第1个数表示第1个物品的价格。

【输出格式】

包含若干行,每行一个单词“YES”或者“NO”,分别代表存在一个购买方案和不存在一个购买方案。

【输入样例】

10 2000
1000 100 200 300 400 500 700 600 900 800
10 2290
1000 100 200 300 400 500 700 600 900 800

【输出样例】

YES
NO

【数据规模】

对于30%的数据:所有的N≤20。

对于100%的数据:所有的N≤40,并且M和物品的总价值不超过2^31-1,测试组数不超过10组,不少于于5组。