#P15453. [JOI 2026 SemiFinal] 衣服 / Clothes

[JOI 2026 SemiFinal] 衣服 / Clothes

说明

海狸比太郎打算在服装店购买 00 件以上的衣服。服装店总共售卖 100100 种衣服,衣服的种类被编号为 11100100。每种衣服的库存都十分充足,无论比太郎购买多少件都不会售罄。

比太郎可以通过穿着所购买的衣服来调节体感温度。当气温为 tt 度,且比太郎穿着种类为 s1,s2,,sks_1, s_2, \dots, s_k 的共 kk 件衣服时,他的体感温度为 t+s1+s2++skt + s_1 + s_2 + \cdots + s_k。注意,比太郎可以选择穿着任意件数(00 件或更多)的衣服(若不穿衣服,即 k=0k = 0,则体感温度即为 tt 度)。此外,他可以同时穿着多件相同种类的衣服,每多穿一件该类衣服,体感温度就会相应增加该种类的编号值。

根据天气预报,比太郎得知未来 NN 天的气温依次为 A1A_1 度,A2A_2 度,\dotsANA_N 度。他希望通过在服装店合理购买衣服,使得在未来 NN 天中的任意一天,他都能通过选择合适的穿着,使体感温度恰好达到 2323 度。同时,如果存在这样的购买方案,他希望购买的衣服总件数尽可能少。

给定未来 NN 天的气温信息,请编写一个程序,判断是否存在一种购买衣服的方案,使得比太郎在任何一天都能将体感温度调整为 2323 度。如果存在,则求出使购买件数最小的其中一种具体购买方式。

输入格式

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

NN
A1 A2  ANA_1\ A_2\ \cdots\ A_N

输出格式

按照以下格式输出到标准输出。

如果不存在任何购买方案使得比太郎在任何一天都能将体感温度调整为 2323 度,则输出 No

如果存在这样的购买方案,则第一行输出 Yes。接下来,设最小购买件数为 kk,所购买的 kk 件衣服的种类依次为 s1,s2,,sks_1, s_2, \dots, s_k,则在第二行输出 kk,在第三行以空格分隔输出 kk 个整数 s1,s2,,sks_1, s_2, \dots, s_k。这 kk 个整数可以按任意顺序输出。若存在多种满足条件的购买方式,输出其中任意一种即可。

3
17 20 23
Yes
2
3 3
1
24
No

提示

样例解释 1

比太郎通过购买 22 件种类 33 的衣服,可以在未来 33 天中的任意一天通过适当穿着使体感温度达到 2323 度。具体穿着方式如下:

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

购买 11 件或更少衣服无法使得未来 33 天中的任意一天都能将体感温度调整为 2323 度。

该输入样例满足子任务 2,4,5,6,72,4,5,6,7 的数据范围。

样例解释 2

气温为 2424 度的那一天无法使体感温度变为 2323 度。因此,无论怎样购买衣服,都无法使得未来 11 天中的任意一天将体感温度调整为 2323 度。

数据范围

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

子任务

  1. (6 分) N=1N = 1
  2. (14 分) N3N \le 3
  3. (15 分) Ai+1=Ai+1A_{i+1} = A_i + 1 (1iN11 \le i \le N-1),且 AN=23A_N = 23
  4. (16 分) Ai12A_i \ge 12 (1iN1 \le i \le N)
  5. (9 分) Ai4A_i \ge 4 (1iN1 \le i \le N)
  6. (21 分) Ai8A_i \ge -8 (1iN1 \le i \le N)
  7. (19 分) 无额外限制。

翻译由 DeepSeek 完成