이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <algorithm>
#include "gap.h"
using ll = long long;
ll arr[100005];
inline ll calc(int n)
{
ll res = 0;
for (int i = 1; i < n; i++)
res = std::max(res, arr[i] - arr[i - 1]);
return res;
}
ll findGap(int sub, int n)
{
if (sub == 1)
{
for (int l = 0, r = n - 1; l <= r; l++, r--)
{
ll pre = l ? arr[l - 1] + 1 : 0;
ll nxt = r + 1 < n ? arr[r + 1] - 1 : (ll)1e18;
MinMax(pre, nxt, arr + l, arr + r);
}
return calc(n);
}
ll mn, mx, cnt = 0;
MinMax(0, 1e18, &mn, &mx);
ll blk = (mx - mn) / (n - 1);
for (ll i = mn; i <= mx; i += blk)
{
ll x, y;
MinMax(i, i + blk - 1, &x, &y);
if (~x)
arr[cnt++] = x;
if (x != y)
arr[cnt++] = y;
}
return calc(cnt);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |