塩見周子の徒然日記

自分のことを塩見周子と思い込んでいるオタクです

4/4 AtCoder(情報落ち)

こんばんは。春休み最終日なのに17:00に起きたとーです。


Code Festival Team Relay A

問題文は割愛

解説で、math.floor( (K-A)/(A-B) )使えばいいよって書いてあったのだが、

例えば、K = 10*18, A = 2, B = 1という入力の場合、

K-A == 999999999999999998
A-B == 1
(K-A)/(A-B) == 1e+18 (10**18)   ←本当は999999999999999998

と出てくる
明らかにK-Aの小さい位の部分が落ちてしまっているので、床関数使ったりするときは注意するように

tooh.hatenadiary.jp

以前こんなことを書いたが、多分これも同じ原因でおかしなことになったのだと思われる(制約が10**18だったので桁が大きくなるとceilとったときに勝手に小さい位が切り上げ・切り下げられてしまっている) というわけで桁がデカくなった時は切り下げのダブルスラッシュを使うように