普通の 200 点でよかった。
AGC 025 A Digits Sum
問題概要
高橋君は 2 つの正の整数 A と B を持っています。 それらの和が N であると分かっているとき、 A の各位の和と B の各位の和の合計として考えられる最小の値を求めよ。
制約
- 2 <= N <= 105
解法
「各位の和を求める方法」は ABC 083 B - Some Sums にて。 普通に A の値を 1 から N-1 まで試しても大丈夫。
#include <iostream> using namespace std; long long N; long long calc(int N) { int res = 0; while (N > 0) { res += N % 10; N /= 10; } return res; } int main() { while (cin >> N) { long long res = 1LL<<60; for (long long i = 1; i < N; ++i) { long long j = N - i; long long tmp = calc(i) + calc(j); res = min(res, tmp); } cout << res << endl; } }