#include <bits/stdc++.h> using namespace std; string now,pop; int n; long long out=0; int main() { cin.tie(0); ios_base::sync_with_stdio(0); cin>>n; cin>>now; for(int i=1;n>i;i++) { pop=now; cin>>now; int a=now.size(); int b=pop.size(); if(a>b) continue; if(a==b) { if(now>pop) continue; now.push_back('0'); out++; continue; } if(now>pop.substr(0,a)) { int k=b-a; out+=k; while(k--) now.push_back('0'); continue; } if(now==pop.substr(0,a)) { int j=a; while(pop[j]=='9' and j<b) j++; if(j==b) { int k=b-a+1; out+=k; while(k--) now.push_back('0'); continue; } out+=j-a; for(int f=a;j>f;f++) now.push_back(pop[f]); now.push_back((char)pop[j]+1); out++; for(int f=j+1;b>f;f++) now.push_back('0'); out+=max(0,b-j-1); continue; } int k=b-a+1; out+=k; while(k--) now.push_back('0'); } cout<<out; return 0; }
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 | #include <bits/stdc++.h> using namespace std; string now,pop; int n; long long out=0; int main() { cin.tie(0); ios_base::sync_with_stdio(0); cin>>n; cin>>now; for(int i=1;n>i;i++) { pop=now; cin>>now; int a=now.size(); int b=pop.size(); if(a>b) continue; if(a==b) { if(now>pop) continue; now.push_back('0'); out++; continue; } if(now>pop.substr(0,a)) { int k=b-a; out+=k; while(k--) now.push_back('0'); continue; } if(now==pop.substr(0,a)) { int j=a; while(pop[j]=='9' and j<b) j++; if(j==b) { int k=b-a+1; out+=k; while(k--) now.push_back('0'); continue; } out+=j-a; for(int f=a;j>f;f++) now.push_back(pop[f]); now.push_back((char)pop[j]+1); out++; for(int f=j+1;b>f;f++) now.push_back('0'); out+=max(0,b-j-1); continue; } int k=b-a+1; out+=k; while(k--) now.push_back('0'); } cout<<out; return 0; } |