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 Rust (1.15.1) (judge verdict: Accepted)

use std::io::*;
use std::str::FromStr;

fn read<T: FromStr>() -> T {
    let stdin = stdin();
    let stdin = stdin.lock();
    let token: String = stdin
        .bytes()
        .map(|c| c.expect("failed to read char") as char) 
        .skip_while(|c| c.is_whitespace())
        .take_while(|c| !c.is_whitespace())
        .collect();
    token.parse().ok().expect("failed to parse token")
}

fn main() {
  let _a: f64 = read();
  let a: u32 = _a as u32;
  let b = 10f64.powi(_a.log10() as i32) as u32;
  if a == b {
    println!("{}", 10);
  } else {
    println!("{}", sum_digit_num(a));
  }
}

fn sum_digit_num(a: u32) -> u32{
  let mut b = a/10*10;
  let mut diff = a-b;
  let mut res = diff;
  let mut x = a/10;
  loop {
    b = x/10*10;
    diff = x-b;
    res += diff;
    if b == 0 { break;}
    x = x/10;
  }
  return res
}