编程题
### 问题描述
在一个神奇的世界里,有一位叫做“小白”的勇士,他正在战斗中积攒经验值,打败怪物可以得到一定的经验值,但是只能选择其中一个怪物的经验值进行获得。小白拼接经验值的方法是将**任意**两个怪物经验值拼接在一起**但是不能改变怪物顺序**,只有当拼接的前一个数字的尾位和后一个数字首位相等时才能够进行拼接,每次拼接需要花费 $1$ 的代价,获得的经验值是拼接后的数位。例如 $123$ 和 $322$ 进行拼接获得经验值就是 $6$ 而需要的花费是 $1$。
当小白获得一个经验值时,他可以选择保留这个经验值或者花费代价进行拼接,以获得更多的经验值。小白想要拥有尽可能高的经验值,你需要帮助他计算最多可以获得的经验值。
请你写一个程序,对于给定的 $n$ 个整数 $a_i$,其中每个数的初始经验值为它的数字位数,计算出小白最多可以获得的经验值。
### 输入格式
第一行输入一个正整数 $n$,表示怪物的数量,$1 \leq n \leq 10^4$。
第二行输入 $n$ 个正整数 $a_i$,表示每个怪物的初始经验值,$1 \leq a_i \leq 10^9$。
### 输出格式
输出仅一行,一个整数,表示小白最多可以获得的经验值。
### 样例输入
```
5
123 456 789 101 231
```
### 样例输出
```
3
```