A

問題文

https://atcoder.jp/contests/abc423/tasks/abc423_a

問題概要

あなたは銀行からお金を $1000$ 円単位で引き落とせます。しかし $1000$ 円引き下ろすごとに手数料 $C$ 円かかります。銀行の残高が $X$ 円ある場合、あなたは最大で何円引き落とせますか。

解法

$1000$ 円引き落とすごとに $C$ 円の手数料がかかるのでこの2つの金額をセットにして考える。

最大で引き下ろせる金額は $k(1000+C) \{ k \in \mathbb N \}$ になる。この $k$ は $\lfloor \frac{X}{1000+C} \rfloor$ になる。

$k$ 回 $1000$ 円引き下ろせるので答えは $1000k$ となる。

制約より while などで愚直にシミュレーションしてもTLは余裕で間に合う。最大ステップ回数は $10^{7-3}$ 回比例になる。

提出

https://atcoder.jp/contests/abc423/submissions/69299049

B

問題文

https://atcoder.jp/contests/abc423/tasks/abc423_b

問題概要

$N+1$ 個の部屋があります。それぞれ $i$ と $i+1$ の部屋の間にはドアがあり、鍵がしまっているかどうかの情報が与えられます。Aくんは $0$ の部屋から、Bくんは $N$ の部屋から鍵が空いているときかつ、そのときに限り部屋を移動することができます。2人のいずれも到達できない部屋の数を答えなさい。

解法

愚直にシミュレーションするのがよい。