C - Mex of Subset Sum Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 800

問題文

長さ N の整数列 A=(A_1,A_2,\dots,A_N) が与えられます。

以下の条件を満たす正整数 X を小さいほうから順に K 個求めてください。

  • A の空でない(連続とは限らない)部分列であって、要素の和が X であるものが存在しない

制約

  • 1 \leq N \leq 60
  • 1 \leq K \leq 1000
  • 1 \leq A_i \leq 10^{15}
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられます。

N K
A_1 A_2 \dots A_N

出力

条件を満たす K 個の正整数を昇順に、空白区切りで出力してください。


入力例 1

3 3
1 2 5

出力例 1

4 9 10

A の部分列としては (1),(2),(1,2),(5),(1,5),(2,5),(1,2,5) が考えられ、要素の和はそれぞれ 1,2,3,5,6,7,8 です。よって X=1,2,3,5,6,7,8 に対しては、要素の和が X であるような A の部分列が存在します。

一方 X=4,9,10 に対しては、要素の和が X であるような A の部分列は存在しません。


入力例 2

20 10
324 60 1 15 60 15 1 60 319 1 327 1 2 60 2 345 1 2 2 15

出力例 2

14 29 44 59 74 89 104 119 134 149

Score : 800 points

Problem Statement

You are given an integer sequence of length N: A=(A_1,A_2,\dots,A_N).

Find the K smallest positive integers X that satisfy the following condition.

  • There is no non-empty (not necessarily contiguous) subsequence of A whose elements sum to X.

Constraints

  • 1 \leq N \leq 60
  • 1 \leq K \leq 1000
  • 1 \leq A_i \leq 10^{15}
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N K
A_1 A_2 \dots A_N

Output

Print the K smallest positive integers satisfying the conditions in ascending order, separated by spaces.


Sample Input 1

3 3
1 2 5

Sample Output 1

4 9 10

The subsequences of A are (1),(2),(1,2),(5),(1,5),(2,5),(1,2,5), and their respective sums are 1,2,3,5,6,7,8. Therefore, for X=1,2,3,5,6,7,8, there are subsequences of A whose elements sum to X.

On the other hand, for X=4,9,10, there is no subsequence of A whose elements sum to X.


Sample Input 2

20 10
324 60 1 15 60 15 1 60 319 1 327 1 2 60 2 345 1 2 2 15

Sample Output 2

14 29 44 59 74 89 104 119 134 149