コンテスト時間: 2024-08-31(土) 21:00 ~ 2024-08-31(土) 22:40 (100分)
A - 369
Difficulty: 28
解答時間: 4:25
- 整数 が与えられるので、 を適切に並べたときに等差数列を作ることができるような整数 が何通りあるか求めよ。
- 状況は以下の3つの場合に分けることができる。
- のとき、 とするしかないので1通り。
- のとき、 とすることができるので2通り。
- のとき、上の場合に加えて とすることができるので3通り。
B - Piano 3
Difficulty: 62
解答時間: 4:56
- 100個の鍵盤が並んだピアノがあり、左から 個目を鍵盤 とする。今から 回にわたってこのピアノの鍵盤を一つずつ押すことにする。 回目に押す鍵盤は鍵盤 であり、それを押す手は
L
のとき左手、R
のとき右手である。演奏を始める前、両手はそれぞれ好きな鍵盤の上に置くことができ、この時点での疲労度は とする。演奏中、片方の手を鍵盤 の上から鍵盤 の上へと動かすと疲労度が 増加する。演奏が終了した時点での疲労度の最小値を求めよ。 - 演奏開始後、「最初に
L
,R
となる鍵盤」の上にあらかじめそれぞれの手を置いておく。あとは指示の通りに手を移動させていくことで、疲労度を最小化できる。
C - Count Arithmetic Subarrays
Difficulty: 323
解答時間: 49:14
- 長さ の正整数列 が与えられるので、数列 が等差数列となるような整数組 の個数を求めよ。ただし、長さ の数列も等差数列とみなす。
- まず初めに と の場合は常に条件を満たすことに注意して、答えに を加算しておく。
- 続いて、2項間の差 (絶対値ではない) を配列に格納しておき、これをランレングス圧縮の要領で と表していく。サンプルケース3なら、 となる。
- あとは各組み合わせについて、 の場合に限り答えに を加算していく (最後の減算は の場合を除いたもの) 。
- が同じ部分を分けて考えないと、 みたいなときに落ちます (1敗) 。
結果
Performance: 446
Rating: 625 → 608 (-17)