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