Problem:
Score : 200 points

Problem Statement

Takahashi has two positive integers A and B.

It is known that A plus B equals N.
Find the minimum possible value of "the sum of the digits of A" plus "the sum of the digits of B" (in base 10).

Constraints

2 ≤ N ≤ 10^5

N is an integer.

Input

Input is given from Standard Input in the following format:

N

Output

Print the minimum possible value of "the sum of the digits of A" plus "the sum of the digits of B".

Sample Input 1

15

Sample Output 1

6

When A=2 and B=13, the sums of their digits are 2 and 4, which minimizes the value in question.

Sample Input 2

100000

Sample Output 2

10

Solution in C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <utility>
#include <string>
#include <algorithm>
#include <map>
#include <vector>
using namespace std;
int n, d;
long long dat[200008] = { 0 };
int N;
void segtree(int n) {
	N = 1;
	while (N < n) N *= 2;
}
void update(long long k, long long a) {
	k += N - 1;
	dat[k] = a;
	while (k > 0) {
		k = (k - 1) / 2;
		dat[k] = dat[k * 2 + 1] + dat[k * 2 + 2];
	}
}
long long query(int a, int b ,int k, int l, int r) {
	if (r <= a || b <= l) return 0;
	if (a <= l && r <= b) return dat[k];
	int m = (l + r) / 2;
	return query(a, b, k * 2 + 1, l, m)+query(a, b, k * 2 + 2, m, r);
}
signed main()
{
	int n;
	int a, b;
	int ans = 99999999;
	cin >> n;
	for (int z = 1; z < n; z++) {
		a = z;
		b = n - a;
		int tmp = 0;
		while (1) {
			tmp += (a % 10) + (b % 10);
			a /= 10;
			b /= 10;
			if (a == 0 && b == 0)break;
		}
		if (tmp <ans)ans = tmp;
	}
	cout << ans;
}