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