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
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
ll pot[100];
ll wy,st;
vector<ll> rozk(ll x){
	vector<ll> v;
	while(x){
		v.push_back(x%10);
		x/=10;
	}
	reverse(v.begin(),v.end());
	return v;
}
ll dl(ll x){
	return rozk(x).size();
}
ll por(vector<ll> v1,vector<ll> v2){
	for(int i=0;i<min(v1.size(),v2.size());i++){
		if(v1[i]<v2[i]){
			return -1;
		}
		if(v1[i]>v2[i]){
			return 1;
		}
	}
	return 0;
}
ll trba(vector<ll> vec){
	ll wy=0;
	for(int i=0;i<vec.size();i++){
		wy*=10;
		wy+=vec[i];
	}
	return wy;
}
ll roz1(ll wcz,ll poz){
	wcz++;
	vector<ll> vw=rozk(wcz),vp=rozk(poz);
	if(vp.size()>vw.size()){
		return poz;
	}
	ll war=por(vp,vw);
	if(war==0){
		wy+=vw.size()-vp.size();
		return wcz;
	}
	while(vw.size()>vp.size()){
		wy++;
		vp.pb(0);
	}
	if(war==-1){
		wy++;
		vp.pb(0);
	}
	return trba(vp);
}
ll mnie(ll sta,ll no){
	vector<ll>  vsta=rozk(sta),vno=rozk(no);
	while(vsta.size()<vno.size()){
		vsta.pb(0);
	}
	ll war=por(vsta,vno);
	if(war==0){
		return sta;
	}
	if(war==1){
		st++;
		return no;
	}
	return no;
}
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	ll n,i,j,a,b,ter;
	pot[0]=1;
	for(i=1;i<100;i++){
		pot[i]=pot[i-1]*10;
	}
	cin >>n;
	cin >>ter;
	ll fa=0;
	for(i=1;i<n;i++){
		cin >>a;
		if(fa==0){
			ter=roz1(ter,a);
			if(ter>=pot[9+6]){
				fa=1;
				st=rozk(ter).size();
				vector<ll> r=rozk(ter);
				r.pop_back();
				r.pop_back();
				r.pop_back();
				r.pop_back();
				r.pop_back();
				r.pop_back();
				ter=trba(r);
			}
		}
		else{
			ter=mnie(ter,a);
			wy+=st-dl(a);
		}
		//cout <<ter <<"\n";
	}
	cout <<wy;
}