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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int len(int x) {
  int res = 1;
  while (x /= 10) res++;
  return res;
}
struct Num {
  int pref, add_digits, suf;
  Num(int x): pref(x), add_digits(0), suf(0) {}
  Num(int x, int add): pref(x), add_digits(add), suf(0) {}
  string to_string() const {
    stringstream ss;
    ss << pref;
    if (add_digits > 0) {
      int zeros = min(10, add_digits - ::len(suf));
      for (int i=0; i<zeros; i++) ss << "0";
      ss << suf;
    }
    return ss.str();
  }
  int len() { return ::len(pref) + add_digits; }
  void increment() {
    if (add_digits == 0) {
      pref++;
    } else {
      suf++;
      if (::len(suf) > add_digits) {
        pref++;
        suf = 0;
      }
    }
  }
};
int cmp_lex(int x, const Num &y) {
  stringstream ss;
  ss << x;
  string xs = ss.str();
  string ys = y.to_string();
  for (int i=0; i<xs.length(); i++) {
    if (i >= ys.length()) return 1;
    if (xs[i] < ys[i]) return -1;
    if (xs[i] > ys[i]) return 1;
  }
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  int n, a;
  long long res = 0;
  cin >> n;
  auto cur = Num(0);
  while (n--) {
    cin >> a;
    int cmp = cmp_lex(a, cur);
    if (cmp < 0) {
      cur = Num(a, max(0, cur.len() - len(a) + 1));
    } else if (cmp > 0) {
      cur = Num(a, max(0, cur.len() - len(a)));
    }
    res += cur.len() - len(a);
    cur.increment();
  }
  cout << res << "\n";
  return 0;
}