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
#include<bits/stdc++.h>
#define fr front()
#define f first
#define mp make_pair
using namespace std;
int j,n;
long long wynik;
string s,last,zera;
ifstream we;
int wiekszy(string a,string b)
    {
    for(int x=0;x<a.size();x++)
        {
        if(a[x]>b[x])return 1;
        else if(b[x]>a[x])return 0;
        }
    return 0;
    }
int niedziewiec(string a,string b)
    {
    for(int x=a.size();x<b.size();x++)
        {
        if(b[x]!='9')return 1;
        }
    return 0;
    }
int main()
{
    ios_base::sync_with_stdio(0);
cin>>n;
for(int i=0;i<=1000200;i++)zera+='0';
    for(int i=1;i<=n;i++)
       {
       cin>>s;
       if(i==1){last=s;continue;}
       else if(s.size()>last.size()){last=s;continue;}
       else if(wiekszy(s,last)){wynik+=last.size()-s.size();s+=zera.substr(0,last.size()-s.size());last=s;continue;}
       else if(s==(last.substr(0,s.size()))&&niedziewiec(s,last))
            {
           wynik+=last.size()-s.size();
           s=last;
           j=s.size()-1;
           while(1)
                {
                if(s[j]=='9'){s[j]='0';j--;}
                else {s[j]++;break;}
                }
            last=s;
            }
        else
            {
            wynik+=last.size()-s.size()+1;s+=zera.substr(0,last.size()-s.size()+1);last=s;continue;
            }
       }
    cout<<wynik;
}