/ :-) / 题库 /

找茬

找茬

题目背景

@big_news(fyh)实在是太毒瘤啦!他励志要卡掉爆搜(划掉)
big_news(以下简称bn)他很看不惯某可怜的售货员。

题目描述

bn想刁难这位“某可怜的售货员”。

bn有\(n\)种钢镚,每种钢镚都有一个价值\(v_i\),每种价值的钢镚都有无限多个。现在他要拿着这些钢镚去这位“某可怜的售货员”那里买一个\(P\)元的东西。
因为bn太蒻了,所以他只能想到一种刁难的方法,就是给这位“某可怜的售货员”尽量多的一堆钢镚,又让这位“某可怜的售货员”在辛辛苦苦数完这堆钢镚之后发现并不需要给bn找钱。
简单来说,就是给这位“某可怜的售货员”总价值正好为\(P\)元的尽量多的钢镚。

“某可怜的售货员”他太可怜啦!现在他找到了你,你能帮他数出bn一共给了他多少钢镚吗?(已知如果有可能,bn总会凑出价值\(P\)元的数量最多的钢镚并拿来付款)

输入/输出格式

Input

共2行
第一行,两个正整数\(n\)和\(P\),分别表示bn有多少种面值的钢镚和他要买多少钱的东西。
第二行,\(n\)个正整数\(v_1,v_2,...,v_n\),表示每种钢镚的面值。

Output

一行,一个正整数,表示bn会给的钢镚数量。
若bn无法完成找茬(即无论如何售货员都得给他找钱),输出-1。

输入/输出样例

Input

3 9
2 3 9

Output

4

数据范围

对于30%的数据,\(0<v_i<=n<=10\)且\(0<P<=200\)。
对于60%的数据,保证\(0<n<=100\)且\(0<v_i<=P<=1,000,000\)
另有40%的数据,\(0<n<=500\)且\(0<v_i<=P<=300,000\)。
对于测试点#3,答案为-1。
注:本题数据经过两程序检验,如有疑问,请联系蒟蒻bn

时空限制

time:1s
memory:128MB

信息

难度
9
分类
动态规划 | 记忆化搜索 点击显示
标签
递交数
36
已通过
1
通过率
3%
上传者

相关

在下列训练计划中:

神奇的动态规划

ACM Steps