Submission #1308645

#TimeUsernameProblemLanguageResultExecution timeMemory
1308645HasanV11010238Gap (APIO16_gap)C++20
100 / 100
39 ms3240 KiB
#include "gap.h" #include <bits/stdc++.h> #define ll long long #define MAX 1000000000000000000 using namespace std; long long findGap(int T, int N) { ll mi = 0, ma = 0, ans = 0, cur = 0, mx, sz; MinMax(0, MAX, &mi, &ma); if (T == 1){ int pos = N; vector<ll> v; while (mi <= ma && mi != -1 && pos > 0){ v.push_back(mi); v.push_back(ma); pos -= 2; if (mi == ma) pos++; if (pos == 0) break; if (mi + 1 > ma - 1) break; ll cl = mi + 1, cr = ma - 1; MinMax(cl, cr, &mi, &ma); } sort(v.begin(), v.end()); for (int i = 1; i < v.size(); i++){ ans = max(ans, v[i] - v[i - 1]); } } else{ ans = (ma - mi) / (ll)(N - 1), cur = mi; mx = ma, sz = ans; while (cur < mx){ MinMax(cur + 1, cur + sz, &mi, &ma); if (mi == -1){ sz *= 2; } else{ ans = max(ans, mi - cur); cur = ma, sz = ans; } } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...