#ABC275F. 删除子数组

删除子数组

删除子数组

题目描述

给定整数数组 A=(a1,a2,,aN)A=(a_1,a_2,\ldots,a_N)

你可以进行任意次(可能为 00 次)以下操作。

选择 AA 的一个非空连续子数组,并将其从数组中删除。

对于每个 x=1,2,,Mx=1,2,\ldots,M,解决以下问题:

求使数组 AA 的元素和等于 xx 所需的最少操作次数。 如果无法使数组 AA 的元素和等于 xx,则输出 -1。

注意,空数组的元素和为 00

输入格式

输入按以下格式从标准输入给出:

NN MM
a1a_1 \ldots aNa_N

输出格式

输出 MM 行。第 ii 行应包含 x=ix=i 时的答案。

样例

4 5
1 2 3 4
1
2
1
1
1

以下是以最少操作次数达成目标的例子。

对于 x=1x=1,删除 a2,a3,a4a_2,a_3,a_4,数组 AA 的元素和变为 xx

对于 x=2x=2,删除 a3,a4a_3,a_4,再删除 a1a_1,数组 AA 的元素和变为 xx

对于 x=3x=3,删除 a3,a4a_3,a_4,数组 AA 的元素和变为 xx

对于 x=4x=4,删除 a1,a2,a3a_1,a_2,a_3,数组 AA 的元素和变为 xx

对于 x=5x=5,删除 a2,a3a_2,a_3,数组 AA 的元素和变为 xx

1 5
3
-1
-1
0
-1
-1
12 20
2 5 6 5 2 1 7 9 7 2 5 5
2
1
2
2
1
2
1
2
2
1
2
1
1
1
2
2
1
1
1
1

数据范围

  • 1N,M30001 \le N,M \le 3000
  • 1ai30001 \le a_i \le 3000
  • 输入中的所有值均为整数。
难度 提高+/省选
通过率
尝试 0
已通过 0
ID
2526
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签