AT274の技術だったりなかったり

あっとのTECH LOG

競プロのこととか技術のこととか。たまに日常を書きます。

ABC165 D - Floor Function

問題原文

atcoder.jp

解法

 N < B ならば右側が必ず0になるので、  x には取りうる一番大きい数である  N を入れるのが最適。
そうでない時、 左側は  A をかけてる効果を最大に活かしたくて、右側は値が変わるギリギリに押さえ込みたい 気持ちになるので、  B - 1 を入れるのが良さそうということがわかる。
一応  n(B - 1) を何個か試して答えが変わらないことを確認しておわり!

実装

A, B, N = map(int, input().split())
 
def calc(x):
    return ((A * x) // B) - A * (x // B)
 
if N < B:
    print(calc(N))
else:
    print(calc(B - 1))

感想

Cの倍以上解かれていてみんな数式につえ〜って思ってました