Submission #1223301

#TimeUsernameProblemLanguageResultExecution timeMemory
1223301minggaGap (APIO16_gap)C++17
30 / 100
43 ms1864 KiB
#include "bits/stdc++.h" #include "gap.h" using namespace std; #define ln "\n" #define dbg(x) cout << #x << " = " << x << ln #define mp make_pair #define pb push_back #define fi first #define se second #define inf 2e18 #define fast_cin() \ ios_base::sync_with_stdio(false); \ cin.tie(NULL) #define out(file) freopen(file, "w", stdout) #define in(file) freopen(file, "r", stdin) #define all(x) (x).begin(), (x).end() #define sz(x) ((int)(x).size()) #define ll long long int MOD = 1e9 + 7; ll findGap(int T, int N) { if(T == 1) { ll mn, mx; ll lb = 0, rb = 1e18; int l = 0, r = N - 1; vector<ll> a(N, 0); while(l <= r) { MinMax(lb, rb, &mn, &mx); a[l] = mn, a[r] = mx; lb = mn + 1, rb = mx - 1; l++, r--; } ll ans = 0; for(int i = 1; i < N; i++) ans = max(ans, a[i] - a[i - 1]); return ans; } else { ll ans = 0; ll mx, mn, s = 0, t = 1e18; MinMax(s, t, &mn, &mx); if(N == 2) return mx - mn; ll gap = (mx - mn + 1) / N; s = mn + 1, t = mx - 1; ll lst = mn; while(s + gap + 1 <= t) { MinMax(s, s + gap, &mn, &mx); if(mn != -1) ans = max(ans, mn - lst), lst = mx; s += gap + 1; } MinMax(s, t, &mn, &mx); if(mn != -1) ans = max(ans, mn - lst), lst - mx; ans = max(ans, t + 1 - lst); return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...