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