[AtCoder] ABC 161 C – Replacing Integer

2020年12月15日

問題

方針

整数 \( t \) が \( N – tK > 0\) を満たし、\( t \) が最大値を取るとき、\( N – tK = N \bmod K \) となります。  また、\( N \bmod K \leq K \) より、\( |N \bmod K – K| = K – N \bmod K\) となります。したがって、

\[ \min(N \bmod K, K – N \bmod K)\]

が答えとなります。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    ll N, K;
    cin >> N >> K;
    cout << min(N % K, abs(N % K - K))<< "\n";
    return 0;
}