#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; } |
English