Official

A - Find Multiple Editorial by sugarrr


プログラミングの学習を始めたばかりで何から手をつけるべきかわからない方は、まずは practice contest の問題A「Welcome to AtCoder」をお試しください。言語ごとに解答例が掲載されています。


\(X\) を、 \(B\)\(C\) で割って余りを切り捨てた値、すなわち \(X=\lfloor \frac{B}{C} \rfloor\) とします。

\(Y=X \times C\) とおきます。
すると、\(Y\)\(B\) 以下で最大の \(C\) の倍数です。

したがって、\(Y \geq A\) ならば \(Y\) を答えとして良いです。
\(Y \lt A\) ならば答えは -1 です。

以下に C++ の実装例を示すので参考にしてください。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

signed main(){
    ll a,b,c;
    cin>>a>>b>>c;
    ll Y = b / c * c; // Y は B 以下で最小の C の倍数
    if(a <= Y){
        cout<<Y<<endl;
    }else{
        cout<<-1<<endl;
    }
    return 0;
}

posted:
last update: