Official
B - 水泳の練習 / Swimming Practice Editorial by admin
swe-2-high\(x\) 回練習すると泳げる距離は \(A + Bx\) メートルになります。答えは \(A + Bx \geq C\) を満たす最小の非負整数 \(x\) で、\(A \geq C\) なら \(0\) です。プログラムは a < c の間 a に b を足し続け、足した回数を数えます。\(B \geq 1\) なので距離は毎回必ず増えてループは必ず終了し、初めて \(a \geq c\) になった時点の回数がまさに最小の \(x\) です。反復回数は高々 \(\lceil \max(0, C - A) / B \rceil\) 回で、この制約では最大でも約 \(10000\) 回なので十分高速です。時間計算量は \(O((C - A) / B)\)、使う空間は \(O(1)\) です。