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
#include <cstdio>

long long n,k,last=-1,sum=0,dig,lastdig,actdig,digdiff,lastcand,sparezeros;

long long MAXL = 100000000000000000L;

inline long long digits(long long l){
	dig=0;
	while (l != 0) {
	    dig ++;
	    l /= 10;
	}
	return dig;
}

inline long long trimDigits(long long l,long long ile){
	if(ile>0)
	while(ile--){
		l/=10;
	}
	return l;
}

int main(){
	scanf("%lld",&n);
	lastdig=-1;
	sparezeros=0;
	while(n--){
		scanf("%lld",&k);
		if(k<=last){
			actdig=digits(k);
			lastcand = last+1;
			lastdig=digits(lastcand);
			//
			if(k != trimDigits(lastcand, lastdig-actdig)){
	//			printf("xD %lld %lld\n",k,trimDigits(lastcand, lastdig-actdig));
				lastcand=k*10;
				while(lastcand<last){
					lastcand*=10;
					if(lastcand>MAXL){
						sparezeros++;
						lastcand/=10;
						break;
					}
				}
			}
			last=lastcand;
	//		printf("xxxxxD %lld +%lld\n",last,(digits(lastcand)-digits(k)));
			sum += (digits(lastcand)-digits(k)+sparezeros);
		}
		else{
			last=k;
	//		printf("xxxxXD %lld\n",last);
		}
	//	printf("%lld",digits(k));
	}
	printf("%lld",sum);
}