# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1012146 | codefox | 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.
#include "gap.h"
#define ll long long
long long findGap(int T, int N)
{
if (T==1)
{
ll l = 0;
ll r = 1e18;
ll mxdist = 0;
ll nl = 0;
ll nr = 0;
ll fl = -1;
ll fr = -1;
for (int j = 0; j < N && l<=r; j+=2)
{
MinMax(l, r, &nl, &nr);
if (nr==-1) break;
if (fl != -1 && nl-fl>mxdist) mxdist = nl-fl;
if (fr != -1 && fr-nr>mxdist) mxdist = fr-nr;
fl = nl;
fr = nr;
l = nl+1;
r = nr-1;
}
if (fr-fl>mxdist) mxdist = fr-fl;
return mxdist;
}
else
{
ll l = 0;
ll rr = 0;
MinMax(0, 1e18, l, rr);
ll dd = 1;
while (l != rr)
{
ll sl = -1;
ll sr = -1
while (sr==-1)
{
MinMax(l+dd, l+2*dd, &sl, &sr);
dd*=2;
}
if (sl-l>dd) dd = sl-l;
l = sr;
}
return dd;
}
}