#include <iostream> #include <string> #include <stdio.h> #include <stdlib.h> #include <sstream> using namespace std; unsigned long long X,D,N,odp; unsigned long long Opt(unsigned long long a, unsigned long long b) { stringstream ss; ss<<a; string A=ss.str(); stringstream sd; sd<<b; string B=sd.str(); for(int i=0; i<B.size(); i++) { if(B[i]!=A[i]) { while(b<a) { b*=10; odp++; } return b; } } odp+=A.size()-B.size(); for(int i=A.size()-1; i>=B.size(); i--) { if(A[i]!='9') { A[i]++; stringstream sstr(A); unsigned long long c; sstr>>c; return c; } } odp++; return a*10; } int main() { cin>>N; cin>>X; for(int i=1; i<N; i++) { cin>>D; if(X==D) { D*=10; odp++; } else if(X>D) { D=Opt(X,D); } X=D; } cout<<odp; 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 | #include <iostream> #include <string> #include <stdio.h> #include <stdlib.h> #include <sstream> using namespace std; unsigned long long X,D,N,odp; unsigned long long Opt(unsigned long long a, unsigned long long b) { stringstream ss; ss<<a; string A=ss.str(); stringstream sd; sd<<b; string B=sd.str(); for(int i=0; i<B.size(); i++) { if(B[i]!=A[i]) { while(b<a) { b*=10; odp++; } return b; } } odp+=A.size()-B.size(); for(int i=A.size()-1; i>=B.size(); i--) { if(A[i]!='9') { A[i]++; stringstream sstr(A); unsigned long long c; sstr>>c; return c; } } odp++; return a*10; } int main() { cin>>N; cin>>X; for(int i=1; i<N; i++) { cin>>D; if(X==D) { D*=10; odp++; } else if(X>D) { D=Opt(X,D); } X=D; } cout<<odp; return 0; } |