Submission #111372

#TimeUsernameProblemLanguageResultExecution timeMemory
111372diamond_dukeGap (APIO16_gap)C++11
83.51 / 100
95 ms1940 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...