C++の練習を兼ねて, AtCoder Beginner Contest 165 の 問題D (D – Floor Function) を解いてみた.
■感想.
1. 非負整数 x を 何とか抽出できたので, AC版となったと思う.
2. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.
本家のサイトABC 165 解説をご覧下さい.
■C++版プログラム(問題D/AC版).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <bits/stdc++.h> using namespace std; using LL = long long; int main(){ // 1. 入力情報. LL A, B, N; scanf("%lld %lld %lld", &A, &B, &N); // 2. 非負整数 x を 計算. LL x = (N >= B) ? max(B - 1LL, 1LL) : N; // 3. 最大値を計算. LL ans = A * x / B - A * (x / B); // 4. 出力. printf("%lld\n", ans); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[入力例] 5 7 4 [出力例] 2 ※AtCoderテストケースより [入力例] 11 10 9 [出力例] 9 ※AtCoderテストケースより [入力例] 1 1 1 [出力例] 0 [入力例] 314159 2653589793 23846264338 [出力例] 314158 [入力例] 314159 2653589793 2384626433 [出力例] 282316 |
■参照サイト
AtCoder Beginner Contest 165