100pt 単位の引換 → ⌊·⌋(ガウス記号)で真の階段関数。壁の向こうは スコア超過(制約外)。
各 hours 値(階段の踊り場)を最小 score で達成する (a, b)。
k1 = ⌊(2a+3b)/100⌋, k2 = ⌊(2a+5b)/100⌋, h = 1.5·k1 + k2。
b ≥ 0 なので k2 ≥ k1 が常に成立 → h = 2, 3, 4, 5.5 などは 到達不可。
| h | (k1, k2) | (a, b) | min score | 内訳 |
|---|---|---|---|---|
| 0 | (0, 0) | (0, 0) | 0 | — |
| 1.0 | (0, 1) | (0, 20) | 172,200 | b=20 だけで opt2 を 1 回発火 |
| 2.5 | (1, 1) | (50, 0) | 249,000 | a=50 で両 opt 同時発火 ★ |
| 3.5 | (1, 2) | (0, 40) | 344,400 | b=40 で opt1×1, opt2×2 |
| 5.0 | (2, 2) | (100, 0) | 498,000 | a=100、制約 500k の限界 ★ |
| h | (k1, k2) | (a, b) | min score | 超過分 |
|---|---|---|---|---|
| 4.5 | (1, 3) | (0, 60) | 516,600 | +16,600 |
| 6.0 | (2, 3) | (25, 50) | 555,000 | +55,000 |
| 7.0 | (2, 4) | (0, 80) | 688,800 | +188,800 |
| 7.5 | (3, 3) | (150, 0) | 747,000 | +247,000 |
| 8.5 | (3, 4) | (75, 50) | 804,000 | +304,000 |
a=100, b=0 で 5h 取る方が b=60 で 4.5h より 安い。
a=50, 100, 150 では (2a+3b) と (2a+5b) が 同時に 100 を跨ぐため、opt1 と opt2 が一斉発火して +2.5h ジャンプ。
a=100 = 498,000 はちょうど 500k 予算の 残り 2,000 score で b=0、絶妙な噛み合わせ。