#loj5603. 「JOI 2026 Semifinal」衣服

    ID: 9656 传统题 2000ms 1024MiB 尝试: 23 已通过: 3 难度: 9 上传者: 标签>JOI2026深度优先搜索 DFS背包 DPbitsetSpecial Judge普及+/提高−

「JOI 2026 Semifinal」衣服

[AdditionalFile5603.zip](file://AdditionalFile5603.zip?type=additional_file)

#5603. 「JOI 2026 Semifinal」衣服

标签: 传统 | 时间限制: 2000 ms | 内存限制: 1024 MiB |

题目描述

题目译自 JOI 2026 Semifinal T3 「衣服 / Clothes

海狸比太郎正准备去服装店买 00 件或更多件衣服。店里总共出售 100100 种衣服,衣服的种类编号为 11100100。店里每种衣服的库存都非常充足,无论比太郎买多少都不会断货。

比太郎可以通过穿衣服来调节体感温度。如果气温是 tt 度,比太郎穿了 kk 件种类为 s1,s2,,sks_{1}, s_{2}, \ldots, s_{k} 的衣服,那么他的体感温度就是 t+s1+s2++skt+s_{1}+s_{2}+\cdots+s_{k} 度。注意,比太郎可以穿任意数量(00 件或更多)的衣服(如果不穿衣服,即 k=0k=0,体感温度就是 tt 度)。此外,比太郎可以同时穿多件同种类的衣服,体感温度会根据穿该种类衣服的数量重复叠加。

根据天气预报,比太郎得知未来 NN 天的气温依次为 A1A_{1} 度,A2A_{2} 度,,AN\ldots, A_{N} 度。比太郎希望通过在服装店合理购买衣服,使得在未来 NN 天的每一天,都能通过选择恰当的衣服穿戴,让体感温度变为 2323 度。同时,如果这种购买方案可行,他希望购买的衣服总数最少。

给定未来 NN 天的气温信息,请编写程序判断比太郎是否能通过购买衣服使得每一天的体感温度都达到 2323 度。如果可能,请找出一个购买衣服数量最少的购买方案。

输入格式

第一行包含一个整数 NN

第二行包含用空格分隔的 NN 个整数 A1,A2,ANA_1, A_2, \ldots A_N

输出格式

如果比太郎无法通过购买衣服使得每一天的体感温度都达到 2323 度,输出 No

如果比太郎可以通过购买衣服使得每一天的体感温度都达到 2323 度,第一行输出 Yes。此外,设比太郎购买的衣服数量最小值为 kk,购买的 kk 件衣服种类分别为 s1,s2,,sks_{1}, s_{2}, \ldots, s_{k},则在第二行输出 kk,在第三行以空格分隔输出 kk 个整数 s1,s2,,sks_{1}, s_{2}, \ldots, s_{k}。这 kk 个整数 s1,s2,,sks_{1}, s_{2}, \ldots, s_{k} 可以以任意顺序输出。如果有多种满足条件的购买方式,输出其中任意一种即可。

样例 1

输入

3
17 20 23

输出

Yes
2
3 3

比太郎通过购买 22 件种类为 33 的衣服,可以使未来 33 天的每一天体感温度都变为 2323 度。具体来说,通过如下方式穿衣即可实现每一天体感温度均为 2323 度:

  • 11 天,穿 22 件种类为 33 的衣服。
  • 22 天,穿 11 件种类为 33 的衣服。
  • 33 天,不穿任何衣服。

无法通过购买 11 件或更少的衣服来实现未来 33 天体感温度均为 2323 度。

此输入样例满足子任务 2,4,5,6,72, 4, 5, 6, 7 的限制。

样例 2

输入

1
24

输出

No

气温为 2424 度的日子无法使体感温度变为 2323 度。因此,无论如何购买衣服,都无法在未来 11 天内使体感温度变为 2323 度。

此输入样例满足子任务 1,2,4,5,6,71, 2, 4, 5, 6, 7 的限制。

样例 3

输入

5
-1 3 6 10 16

输出

Yes
3
4 7 13

此样例满足子任务 6,76, 7 的限制。

样例 4

输入

3
21 22 23

输出

Yes
2
1 1

此样例满足子任务 2,3,4,5,6,72, 3, 4, 5, 6, 7 的限制。

数据范围与提示

对于所有输入数据,满足:

  • 1N811 \leq N \leq 81
  • 40Ai40-40 \leq A_{i} \leq 40 (1iN)(1 \leq i \leq N)
  • Ai<Ai+1A_{i} < A_{i+1} (1iN1)(1 \leq i \leq N-1)
  • 输入的所有值均为整数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 66 N=1N=1
22 1414 N3N \leq 3
33 1515 Ai+1=Ai+1A_{i+1}=A_{i}+1 (1iN1),AN=23(1 \leq i \leq N-1), A_{N}=23
44 1616 Ai12A_{i} \geq 12 (1iN)(1 \leq i \leq N)
55 99 Ai4A_{i} \geq 4 (1iN)(1 \leq i \leq N)
66 2121 Ai8A_{i} \geq -8 (1iN)(1 \leq i \leq N)
77 1919 无附加限制