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
78
79
#include <iostream>
#include <cmath>

using namespace std;

long long dl(long long a){
	long long w=0;
	while(a!=0)
	{
		a=a/10;
		w++;
	}
	return w;
}

long long comp(long long b, long long a){
	long long d=pow(10, dl(b)-dl(a));
	long long c=b%d;

		return c+1;
}

int main(int argc, char const *argv[]){
	int n;
	long long T[n];
	cin>>n;
	for (int i = 0; i < n; ++i)
	{
		long long a;
		cin>>a;
		T[i]=a;
	}
	long long w=0;
	for(int i=1;i<n;i++)
	{
		if(T[i-1]>=T[i])
		{
			if(dl(T[i-1])>dl(T[i]))
			{
				//cout<<"<"<<T[i-1]/pow(10,dl(T[i-1])-dl(T[i]))<<">\n";
				if(T[i]<T[i-1]/pow(10,dl(T[i-1])-dl(T[i])))
				{
					w+=dl(T[i-1])-dl(T[i])+1;
					T[i]=T[i]*pow(10,dl(T[i-1])-dl(T[i])+1);
				}
				else if(T[i]>T[i-1]/pow(10,dl(T[i-1])-dl(T[i])))
				{
					w+=dl(T[i-1])-dl(T[i]);
					T[i]=T[i]*pow(10,dl(T[i-1])-dl(T[i]));
				}
				else
				{
					long long c=comp(T[i-1], T[i]);
					// cout<<"c "<<c<<endl;
					if(dl(c)==dl(T[i-1])-dl(T[i]))
					{
						w=w+dl(T[i-1])-dl(T[i]);
						T[i]=T[i]*pow(10,dl(T[i-1])-dl(T[i]))+c;
					}
					else
					{
						w=w+dl(T[i-1])-dl(T[i])+1;
						T[i]=T[i]*pow(10,dl(T[i-1])+1);
					}
				}
			}
			else 
			{
				w++;
				T[i]=T[i]*10;
			}
		}
	}


	cout<<w<<endl;

	return 0;
}