Submission #673472

#TimeUsernameProblemLanguageResultExecution timeMemory
673472S2speedGap (APIO16_gap)C++17
30 / 100
52 ms1864 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; #pragma GCC optimize ("Ofast") #define all(x) x.begin() , x.end() #define sze(x) (ll)(x.size()) typedef long long ll; const ll maxn = 1e5 + 17 , md = 1e9 + 7; ll a[maxn] , mn , mx; ll findGap(int T , int n){ if(T == 1 || n <= 8){ ll x = 0 , y = n , pn = 0 , px = 1e18; while(x < y){ MinMax(pn , px , &mn , &mx); a[x++] = mn; a[--y] = mx; pn = mn + 1; px = mx - 1; } ll ans = 0; for(ll i = 0 ; i < n - 1 ; i++){ ans = max(ans , a[i + 1] - a[i]); } return ans; } MinMax(0 , (ll)1e18 , &mn , &mx); ll ls = mx; ll cur = (mx - mn + n - 2) / (n - 1) , x = mn; while(ls - x > cur){ ll l = x + 1 , r = l + cur; MinMax(l , r , &mn , &mx); if(mn != -1){ x = mx; continue; } while(true){ r = l + (cur << 1); MinMax(l , r , &mn , &mx); if(mn == -1){ cur <<= 1; } else { cur = mn - x; x = mx; break; } } } return cur; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...