#include<bits/stdc++.h>
using namespace std;
string pop,akt;
int ktw(){ //0 - równe, 1 - pierwsza większa, 2 - druga większa
for(int i=0; i<akt.length(); i++){
if(akt[i]>pop[i]) return 1;
if(akt[i]<pop[i]) return 2;
}
return 0;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
bool ok;
long long xd=0;
int n,a,o;
cin>>n>>a;
pop=to_string(a);
for(int i=2; i<=n; i++){
cin>>a;
akt=to_string(a);
o=akt.length();
if(akt.length()>pop.length()) goto XD;
if(akt==pop){
akt+='0';
xd++;
goto XD;
}
a=ktw();
if(!a){
if(akt.size()<pop.size()){
ok=1;
for(int j=akt.size(); j<pop.size(); j++) if(pop[j]!='9') ok=0;
if(ok){
akt=pop+'0';
}
else{
ok=1;
a=pop.size()-akt.size();
while(akt.size()<pop.size()) akt+='0';
for(int j=pop.size()-1; j>=pop.size()-a; j--){
if(pop[j]!='9'&&ok){
akt[j]=pop[j]+1;
ok=0;
}
else akt[j]=pop[j];
}
}
}
else a++;
}
else if(a==1){
while(akt.size()<pop.size()) akt+='0';
}
else if(a==2){
while(akt.size()<pop.size()) akt+='0';
akt+='0';
}
xd+=akt.length()-o;
XD:;
pop=akt;
}
cout<<xd;
}
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 | #include<bits/stdc++.h> using namespace std; string pop,akt; int ktw(){ //0 - równe, 1 - pierwsza większa, 2 - druga większa for(int i=0; i<akt.length(); i++){ if(akt[i]>pop[i]) return 1; if(akt[i]<pop[i]) return 2; } return 0; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); bool ok; long long xd=0; int n,a,o; cin>>n>>a; pop=to_string(a); for(int i=2; i<=n; i++){ cin>>a; akt=to_string(a); o=akt.length(); if(akt.length()>pop.length()) goto XD; if(akt==pop){ akt+='0'; xd++; goto XD; } a=ktw(); if(!a){ if(akt.size()<pop.size()){ ok=1; for(int j=akt.size(); j<pop.size(); j++) if(pop[j]!='9') ok=0; if(ok){ akt=pop+'0'; } else{ ok=1; a=pop.size()-akt.size(); while(akt.size()<pop.size()) akt+='0'; for(int j=pop.size()-1; j>=pop.size()-a; j--){ if(pop[j]!='9'&&ok){ akt[j]=pop[j]+1; ok=0; } else akt[j]=pop[j]; } } } else a++; } else if(a==1){ while(akt.size()<pop.size()) akt+='0'; } else if(a==2){ while(akt.size()<pop.size()) akt+='0'; akt+='0'; } xd+=akt.length()-o; XD:; pop=akt; } cout<<xd; } |
English