A - Required Remainder

cpcodeforcesdiv3math

最終更新日

Table of Contents

Loading...

問題

https://codeforces.com/contest/1374/problem/A (新しいタブで開く)

問題文

x,y,nx, y, n が与えられる。0kn0 \le k \le n となる kk であって、kmodx=yk \bmod x = y となる最大値は?

制約

サンプル

7 7 5 12345 5 0 4 10 5 15 17 8 54321 499999993 9 1000000000 10 5 187 2 0 999999999
12339 0 15 54306 999999995 185 999999998

考察

整理すると、 k=ax+yk = ax + y かつ knk \le n となる kk の最大値を求める問題。
これを満たすような整数 aa の最大値を求められればいい。

式変形すると、 anyxa \le \frac{n - y}{x} になるので、 a=nyxa = \lfloor \frac{n-y}{x} \rfloor にして、 k=ax+yk = ax + y を求めればいい。

コード

https://codeforces.com/contest/1374/submission/126804568 (新しいタブで開く)

void solve() { ll x, y, n; cin >> x >> y >> n; ll a = (n - y) / x; ll ans = a * x + y; cout << ans << endl; }