# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
95642 | jeff | Gap (APIO16_gap) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
inline unsigned long long mde(unsigned long long a, unsigned long long b, unsigned long long c) {
unsigned long long s = 0, t = 0, y = 0, z = 0, i;
stack<unsigned long long> st;
while (b) st.push(b % 10), b /= 10;
while (!st.empty()) {
z *= 10;
y *= 10;
z += a * st.top();
st.pop();
y += z / 1000000000000000000;
z %= 1000000000000000000;
}
t += y / c;
y %= c;
for (i = 0; i < 18; ++i) {
y *= 10;
z *= 10;
t *= 10;
y += z / 1000000000000000000;
z %= 1000000000000000000;
t += y / c;
y %= c;
}
return t;
}
long long findGap(int T, int N) {
long long l, r, y, z, ls = -1, rs = 0, a, b = 0, i;
MinMax(0, 1000000000000000000, &y, &z);
for (i = 0; i < N - 1; ++i) {
a = y + mde(z - y, i, N - 1);
b = y + mde(z - y, i + 1, N - 1) - 1;
MinMax(a, b, &l, &r);
if (l < 0 && r < 0) continue;
if (ls > -1) rs = max(rs, l - ls);
ls = r;
}
return max(rs, z - r);
}