#P0746. 01 背包求最长长度

01 背包求最长长度

题目描述

给定一个整数 nn 和一个长度为 nn 的数组 a[i]a[i],请你输出 aa 数组中和为 targettarget 的子序列的最长长度。如果不存在请输出-1

子序列解释:原数组中删除一些或者不删除任何元素后,并且保证剩余元素顺序构成不变的数组。

样例输入

第一行两个整数 nntargettarget

第二行输入 nn 个整数 aia_i

样例输出

输出一个整数作为答案。

样例

样例一

5 9
1 2 3 4 5
3

样例解释:总共有3个子序列的和为9

分别为:[4, 5][1, 3, 5][2, 3, 4]

可以发现最长的长度为3

数据范围

1n,target,ai1031 \le n, target, a_i \le 10^{3}