#include<bits/stdc++.h> using namespace std; int wyn, n, liczba, k1, k2, mink, maxk, rown=1, xd, maxr=1; string s[220000]; int main() { ios_base::sync_with_stdio(0); cin>> n; for(int i=0; i<n; i++) { cin>> s[i]; } liczba = s[0].size(); for(int i=1; i<n; i++) { k1 = s[i-1].size(); k2 = s[i].size(); mink = min(k1, k2); for(int j=0; j<mink; j++) { if(s[i][j]<s[i-1][j]) { rown=1; xd++; liczba++; wyn += liczba - k2; break; } if(s[i][j]>s[i-1][j]) { rown=1; xd++; wyn+=liczba-k2; break; } } if(xd==0) { if(k2>k1) { for(int j=mink; j<s[i].size(); j++) { if(s[i][j] != 48) { if(liczba<k2) liczba=k2; rown=1; wyn+=liczba-k2; break; } } } if(k1>k2) { for(int j=mink; j<s[i-1].size(); j++) { if(s[i-1][j] != 48) { rown=1; liczba++; wyn+=liczba-k2; break; } } } if(k1==k2) { rown++; for(int p=0; p<liczba-k2; p++) { maxr*=10; } if(rown>=maxr) { rown=1; liczba++; } wyn+=liczba-k2; } } else xd = 0; } cout<<wyn; }
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 | #include<bits/stdc++.h> using namespace std; int wyn, n, liczba, k1, k2, mink, maxk, rown=1, xd, maxr=1; string s[220000]; int main() { ios_base::sync_with_stdio(0); cin>> n; for(int i=0; i<n; i++) { cin>> s[i]; } liczba = s[0].size(); for(int i=1; i<n; i++) { k1 = s[i-1].size(); k2 = s[i].size(); mink = min(k1, k2); for(int j=0; j<mink; j++) { if(s[i][j]<s[i-1][j]) { rown=1; xd++; liczba++; wyn += liczba - k2; break; } if(s[i][j]>s[i-1][j]) { rown=1; xd++; wyn+=liczba-k2; break; } } if(xd==0) { if(k2>k1) { for(int j=mink; j<s[i].size(); j++) { if(s[i][j] != 48) { if(liczba<k2) liczba=k2; rown=1; wyn+=liczba-k2; break; } } } if(k1>k2) { for(int j=mink; j<s[i-1].size(); j++) { if(s[i-1][j] != 48) { rown=1; liczba++; wyn+=liczba-k2; break; } } } if(k1==k2) { rown++; for(int p=0; p<liczba-k2; p++) { maxr*=10; } if(rown>=maxr) { rown=1; liczba++; } wyn+=liczba-k2; } } else xd = 0; } cout<<wyn; } |