ABC161 C - Replacing Integer
問題はこちら
atcoder.jp
方針
例3が見るからにTLEを誘っているので,馬鹿正直に題意の操作をするのは断念。
のとき,題意の操作により は となっていきます。 となるまでこの操作を続ける( を で割り切れなくなるまで割る)と,( : を で割った余り)となり,以後 のときに合流します。
問題は のときですが,これは操作を続けても か にしかならないので,このうち小さい方を出力すればいいですね。
コード
#include <bits/stdc++.h> using namespace std; int main(){ long n,k; cin>>n>>k; long surplus=n%k; if(n>=k){ cout<<min(surplus,k-surplus)<<endl; }else{ cout<<min(n,k-n)<<endl; } }