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