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
#include<algorithm>
#include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
long long tab[19]= {1};
int ile_cyfr(long long n){
	int w = 0;
	while(n > 0) {
		n /= 10;
		w++;
	}
	return w;
}
int main()
{
	//ios_base::sync_with_stdio(0);
	int n, i, j, d1, d2, zera = 0;
	for(i = 1;i < 19; i++) tab[i] = tab[i-1] * 10;
	long long wyn = 0, a1, a2; 
	scanf("%d",&n);
	n--;
	scanf("%lld",&a1);
	d1 = ile_cyfr(a1);
	while(n--){
		scanf("%lld",&a2);
		if (a1 < 1e15) {			
			d2 = ile_cyfr(a2);
			if (d2 < d1){
				if(a2 > a1/tab[d1 - d2]){
					wyn += d1 - d2;
					a2 *= tab[d1-d2];
				}
				else if (a2 == a1/tab[d1- d2]){
					if(a2 == (a1 + 1)/tab[d1- d2]){
						a2 = a1 + 1;
						wyn += d1-d2;
					}
					else{
						wyn += d1 - d2 + 1;
						a2 *= tab[d1-d2 + 1];
					}					
				}
				else {
					wyn += d1 - d2 + 1;
					a2 *= tab[d1-d2 + 1];			
				}
			}
			else if (d2 == d1 && a2 <= a1){

				wyn +=  1;
				a2 *= 10;			
			}
			a1 = a2;
			d1 = ile_cyfr(a1);
			//cout << a1 << endl<<endl;
		}
		else {
			d2 = ile_cyfr(a2);
			if(a2 > a1/tab[d1 - d2]){
					wyn += d1 + zera - d2;
					a1 = a2*tab[d1 - d2] ;
				}
			else if (a2 == a1/tab[d1- d2]){
				wyn += d1 + zera - d2;
			}				
			else{
				zera++;
				wyn += d1 + zera - d2 ;
				a1 = a2*tab[d1 - d2] ;			
				}
			//cout<<a1<<s<<endl<<endl;
			}		
		}
			
	printf("%lld",wyn);			
return 0;					
}