#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
/* string t,w;
cin>>t>>w;
for(int i=0;i<1000000;i++){
t+=w;
if(i%100==0)t='0';
}*/
int n;
cin>>n;
long long wynik=0;
string last;
cin>>last;
int p=last.size();
for(int i=1;i<n;i++){
string a;
cin>>a;
if(a.size()>last.size()){
last=a;
}
else{
int j=0;
while(a[j]==last[j]&&j<a.size()){
last[j]=a[j];
j++;
}
if(j==a.size()){
int k=last.size()-1;
while(last[k]=='9'&&k>=a.size()){
last[k]='0';
k--;
}
if(k>=a.size())last[k]++;
else{
last+='0';
}
wynik+=(long long)(last.size()-a.size());
}
else if(a[j]>last[j]){
while(j<a.size()){
last[j]=a[j];
j++;
}
while(j<p){
last[j]='0';
j++;
}
j=last.size()-1;
while(j>(int)last.size()-11&&j>=a.size()&&j>=p){
last[j]='0';
j--;
}
wynik+=(long long)(last.size()-a.size());
}
else{
while(j<a.size()){
last[j]=a[j];
j++;
}
while(j<p){
last[j]='0';
j++;
}
j=last.size()-1;
while(j>(int)last.size()-11&&j>=a.size()&&j>=p){
last[j]='0';
j--;
}
last+='0';
wynik+=(long long)(last.size()-a.size());
}
}
p=a.size();
}
cout<<wynik;
}
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 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); /* string t,w; cin>>t>>w; for(int i=0;i<1000000;i++){ t+=w; if(i%100==0)t='0'; }*/ int n; cin>>n; long long wynik=0; string last; cin>>last; int p=last.size(); for(int i=1;i<n;i++){ string a; cin>>a; if(a.size()>last.size()){ last=a; } else{ int j=0; while(a[j]==last[j]&&j<a.size()){ last[j]=a[j]; j++; } if(j==a.size()){ int k=last.size()-1; while(last[k]=='9'&&k>=a.size()){ last[k]='0'; k--; } if(k>=a.size())last[k]++; else{ last+='0'; } wynik+=(long long)(last.size()-a.size()); } else if(a[j]>last[j]){ while(j<a.size()){ last[j]=a[j]; j++; } while(j<p){ last[j]='0'; j++; } j=last.size()-1; while(j>(int)last.size()-11&&j>=a.size()&&j>=p){ last[j]='0'; j--; } wynik+=(long long)(last.size()-a.size()); } else{ while(j<a.size()){ last[j]=a[j]; j++; } while(j<p){ last[j]='0'; j++; } j=last.size()-1; while(j>(int)last.size()-11&&j>=a.size()&&j>=p){ last[j]='0'; j--; } last+='0'; wynik+=(long long)(last.size()-a.size()); } } p=a.size(); } cout<<wynik; } |
English