题库练习 The Values You Can Make
← 上一题 下一题 →

A10383 | The Values You Can Make

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Pari wants to buy an expensive chocolate from Arya. She has $n$ coins, the value of the $i$ -th coin is $c_{i}$ . The price of the chocolate is $k$ , so Pari will take a subset of her coins with sum equal to $k$ and give it to Arya.

Looking at her coins, a question came to her mind: after giving the coins to Arya, what values does Arya can make with them? She is jealous and she doesn't want Arya to make a lot of values. So she wants to know all the values $x$ , such that Arya will be able to make $x$ using some subset of coins with the sum $k$ .

Formally, Pari wants to know the values $x$ such that there exists a subset of coins with the sum $k$ such that some subset of this subset has the sum $x$ , i.e. there is exists some way to pay for the chocolate, such that Arya will be able to make the sum $x$ using these coins.

输入格式

The first line contains two integers $n$ and $k$ ( $1<=n,k<=500$ ) — the number of coins and the price of the chocolate, respectively.

Next line will contain $n$ integers $c_{1},c_{2},...,c_{n}$ ( $1<=c_{i}<=500$ ) — the values of Pari's coins.

It's guaranteed that one can make value $k$ using these coins.

输出格式

First line of the output must contain a single integer $q$ — the number of suitable values $x$ . Then print $q$ integers in ascending order — the values that Arya can make for some subset of coins of Pari that pays for the chocolate.

输入输出样例

输入 #1
6 18
5 6 1 10 12 2
输出 #1
16
0 1 2 3 5 6 7 8 10 11 12 13 15 16 17 18 
输入 #2
3 50
25 25 50
输出 #2
3
0 25 50 
C++ 编辑器
输入
输出