はまやんはまやんはまやん

hamayanhamayan's blog

Next TTPC [東京工業大学プログラミングコンテスト2019 A]

https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_a

解説

https://atcoder.jp/contests/ttpc2019/submissions/7225294

計算を頑張る。
周期cycle=B-Aである。
B, B+cycle, B+cycle*2, ...のようになるが、Tのままだと扱いにくい。
そこで、T-Bとしておくと、cycleで割ったときの余りが0になればいいので、ちょっと扱いやすい。
T-Bをcycleで割ったときの余りが0でないときは、0になるように差分を足す。
最後にそれに+Bをすると元に戻るので、それが答え。

int A, B, T;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> A >> B >> T;

    int cycle = B - A;

    int ans = T - B;

    if (0 < ans % cycle) {
        ans += (cycle - (ans % cycle));
    }

    ans += B;

    cout << ans << endl;
}