#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; #define PB push_back #define ST first #define ND second ll d[100]; const ll duzo = 1e16; ll z; struct num { ll a; ll e; num(ll _a) { a = _a; e = 16; z = 0; while(a < duzo) { a*=10; e--; z++; } } }; ll po(ll f) { if(f < 0) return 1; return d[f]; } int main() { ios_base::sync_with_stdio(0); int n; d[0] = 1; for(int i=1; i < 18; i++) d[i] = d[i-1]*10; cin >> n; ll a; cin >> a; num x = num(a); ll res=0; //~ cout << x.a << " " << x.e << "\n"; for(int i=1; i < n; i++) { ll b; cin >> b; num y = num(b); ll cur; if(y.e <= x.e) { cur = x.e-y.e; y.e = x.e; //~ cout << y.a+d[z]-po(16-y.e) << "\n"; if(y.a > x.a) { //ok } else if(y.a+d[z]-po(16-y.e) > x.a && x.a >= y.a) { y.a = y.a + x.a%y.a + po(16-y.e); } else { cur++; y.e++; } res+=cur; } //~ cout << y.a << " " << y.e << "\n"; x = y; } cout << res << "\n"; 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 | #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; #define PB push_back #define ST first #define ND second ll d[100]; const ll duzo = 1e16; ll z; struct num { ll a; ll e; num(ll _a) { a = _a; e = 16; z = 0; while(a < duzo) { a*=10; e--; z++; } } }; ll po(ll f) { if(f < 0) return 1; return d[f]; } int main() { ios_base::sync_with_stdio(0); int n; d[0] = 1; for(int i=1; i < 18; i++) d[i] = d[i-1]*10; cin >> n; ll a; cin >> a; num x = num(a); ll res=0; //~ cout << x.a << " " << x.e << "\n"; for(int i=1; i < n; i++) { ll b; cin >> b; num y = num(b); ll cur; if(y.e <= x.e) { cur = x.e-y.e; y.e = x.e; //~ cout << y.a+d[z]-po(16-y.e) << "\n"; if(y.a > x.a) { //ok } else if(y.a+d[z]-po(16-y.e) > x.a && x.a >= y.a) { y.a = y.a + x.a%y.a + po(16-y.e); } else { cur++; y.e++; } res+=cur; } //~ cout << y.a << " " << y.e << "\n"; x = y; } cout << res << "\n"; return 0; } |