ビーバーのビ太郎は,これから服屋で0 枚以上の服を購入しようとしている.服屋では全部で100 種類
の服が販売されており,服の種類には1 から100 までの番号が付けられている.服屋にはそれぞれの種類
の服の在庫が十分な数用意されており,ビ太郎がいくら服を買っても品切れになることはない.
ビ太郎は,購入した服を着ることで体感温度を調節することができる.気温がt 度であり,ビ太郎が種類
s1, s2, . . . , sk のk 枚の服を着ている場合,ビ太郎の体感温度はt + s1 + s2 + · · · + sk 度である.ただし,ビ太
郎は0 枚以上の好きな枚数の服を着ることができる(服を着ていない,すなわちk = 0 の場合は体感温度は
t 度である).また,ビ太郎は同じ種類の服を一度に複数枚着ることもでき,その種類の服を着た分だけ体感
温度は重複して上昇することに注意せよ.
ビ太郎は天気予報により,今後N 日間の気温は順にA1 度,A2 度,. . .,AN 度になることを知った.ビ太
郎は服屋で適切に服を購入することで,今後N 日間のいずれの日も,うまく着る服を選ぶことで体感温度
を23 度にできるようにしたいと考えている.また,そのような服の購入が可能である場合は,購入する服
の枚数を最小限にしたいと考えている.
今後N 日の気温の情報が与えられたとき,ビ太郎がいずれの日も体感温度を23 度にできるような服の購
入は可能であるか判定し,可能である場合は購入する服の数が最小となるような服の買い方の一例を求める
プログラムを作成せよ.
The 25th Japanese Olympiad in Informatics (JOI 2025/2026)
Semifinal Stage
February 1, 2026 (Shimbashi, Tokyo)
• 1 ≦N ≦81.
• −40 ≦Ai ≦40 (1 ≦i ≦N).
• Ai < Ai+1 (1 ≦i ≦N −1).
• 入力される値はすべて整数である.
- (6 点) N = 1.
- (14 点) N ≦3.
- (15 点) Ai+1 = Ai + 1 (1 ≦i ≦N −1),AN = 23.
- (16 点) Ai ≧12 (1 ≦i ≦N).
- (9 点) Ai ≧4 (1 ≦i ≦N).
- (21 点) Ai ≧−8 (1 ≦i ≦N).
- (19 点) 追加の制約はない.
入力は以下の形式で標準入力から与えられる.
N
A1 A2 · · · AN
標準出力に以下の形式で出力せよ.
ビ太郎がいずれの日も体感温度を23 度にできるような服の購入が不可能である場合,No と出力せよ.
ビ太郎がいずれの日も体感温度を23 度にできるような服の購入が可能である場合,1 行目にYes と出力
せよ.さらに,ビ太郎が購入する服の数の最小値をk とし,購入するk 枚の服の種類をそれぞれs1, s2, . . . , sk
として,2 行目にk を出力し,3 行目にk 個の整数s1, s2, . . . , sk を空白区切りで出力せよ.k 個の整数
s1, s2, . . . , sk はどの順番で出力してもよい.また,条件を満たす服の購入の仕方が複数存在する場合,その
うちどれを出力してもよい.
The 25th Japanese Olympiad in Informatics (JOI 2025/2026)
Semifinal Stage
February 1, 2026 (Shimbashi, Tokyo)
3
17 20 23
Yes
2
3 3
1
24
No
5
-1 3 6 10 16
Yes
3
4 7 13
3
21 22 23
Yes
2
1 1