#include <iostream> #include <string> using namespace std; int porownaj(string & a, string b) { int da =a.length(); int db= b.length(); if(da>db){ return 0; } for(int i=0;i<da;i++) if(a[i]!=b[i]) { if(a[i]>b[i]){ for(int i = 0;i<db-da;i++) a=a + '0'; return db-da; } if(a[i]<b[i]){ for(int i = 0;i<db-da +1;i++) a=a + '0'; return db-da +1; } } bool flaga = true; for(int i=da;i<db & flaga;i++) if(b[i]!='9') { flaga = false; } if(flaga){ for(int i = 0;i<db-da +1;i++) a=a + '0'; return db-da +1; } for(int i = da;i<db;i++) a= a + b[i]; a[db-1]++; flaga = true; while(flaga){ flaga = false; for(int i =db-1;i>=da;i--) if(a[i]==':') { a[i]='0'; a[i-1]++; flaga =true; } } return db-da; } int main() { long long int N = 0; string a=""; string b="/"; long long int result = 0; cin>>N; if(N==1){ cin>>a; cout<<result<<endl; return 0; } for(int i =0;i<N;i++) { cin>>a; result+=porownaj(a,b); b=a; } cout<<result<<endl; 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #include <iostream> #include <string> using namespace std; int porownaj(string & a, string b) { int da =a.length(); int db= b.length(); if(da>db){ return 0; } for(int i=0;i<da;i++) if(a[i]!=b[i]) { if(a[i]>b[i]){ for(int i = 0;i<db-da;i++) a=a + '0'; return db-da; } if(a[i]<b[i]){ for(int i = 0;i<db-da +1;i++) a=a + '0'; return db-da +1; } } bool flaga = true; for(int i=da;i<db & flaga;i++) if(b[i]!='9') { flaga = false; } if(flaga){ for(int i = 0;i<db-da +1;i++) a=a + '0'; return db-da +1; } for(int i = da;i<db;i++) a= a + b[i]; a[db-1]++; flaga = true; while(flaga){ flaga = false; for(int i =db-1;i>=da;i--) if(a[i]==':') { a[i]='0'; a[i-1]++; flaga =true; } } return db-da; } int main() { long long int N = 0; string a=""; string b="/"; long long int result = 0; cin>>N; if(N==1){ cin>>a; cout<<result<<endl; return 0; } for(int i =0;i<N;i++) { cin>>a; result+=porownaj(a,b); b=a; } cout<<result<<endl; return 0; } |