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
69
70
71
72
73
74
75
76
77
#include <algorithm>
#include <iostream>
#include <string>

using namespace std;
using LL = long long;

int main()
{
	int n;
	cin >> n;

	LL res = 0;
	string next = "1";

	for (int i = 0; i < n; ++i)
	{
		string cur;
		cin >> cur;

		if (cur.length() <= next.length())
		{
			bool equ = true;

			for (int j = 0; j < cur.length(); ++j)
			{
				if (cur[j] < next[j])
				{				
					res += next.length() - cur.length() + 1;
					cur.append(next.length() - cur.length() + 1, '0');

					equ = false;
					break;
				}
				else if (cur[j] > next[j])
				{
					res += next.length() - cur.length();
					cur.append(next.length() - cur.length(), '0');

					equ = false;
					break;
				}
			}

			if (equ)
			{
				res += next.length() - cur.length();
				cur = next;
			}
		}

		bool append_one = true;

		for (int j = cur.length() - 1; j >= 0; --j)
		{
			if (cur[j] >= '0' && cur[j] < '9')
			{
				cur[j]++;
				append_one = false;
				break;
			}
			else
			{
				cur[j] = '0';
			}
		}

		if (append_one)
			cur.insert(0, 1, '1');

		next = cur;
	}

	cout << res;

	return 0;
}