Submission #1301828

#TimeUsernameProblemLanguageResultExecution timeMemory
1301828tamzidGap (APIO16_gap)C++20
30 / 100
2111 ms589824 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; using ll = long long; long long findGap(int T, int N) { if(T == 1) { vector<ll> a(N); ll l = 0, r = 1e18; int i = 0, j = N - 1; while(i <= j) { ll mn, mx; MinMax(l, r, &mn, &mx); a[i] = mn; a[j] = mx; l = mn + 1; r = mx - 1; ++i; --j; } ll ans = 0; for(int i=0;i<N-1;++i) ans = max(ans, a[i + 1] - a[i]); return ans; } else { ll mn, mx, mx2; MinMax(0, 1e18, &mn, &mx); mx2 = mx; ll gap = (mx - mn + 1) / (1LL * N); ll cur = mn + 1; vector<ll> a; a.push_back(mn); if(mn != mx) { a.push_back(mx); } while(a.size() != N) { ll cur2 = cur, cur3 = cur + gap; while(cur <= cur2) { MinMax(cur2, cur3, &mn, &mx); if(mn == -1) { break; } else { if(mx != mx2) { a.push_back(mn); } if(mn != mx && mx != mx2) { a.push_back(mx); } } mn += 1; mx -= 1; } cur += gap; } sort(a.begin(), a.end()); ll ans = 0; for(int i=0;i<N-1;++i) ans = max(ans, a[i + 1] - a[i]); return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...