Submission #274628

#TimeUsernameProblemLanguageResultExecution timeMemory
274628test2Gap (APIO16_gap)C++14
0 / 100
35 ms2168 KiB
#include<bits/stdc++.h> //#include "gap.h" //#pragma GCC optimize("Ofast") //#pragma GCC target("avx,avx2,fma") //#pragma GCC optimization ("unroll-loops") #define I inline void using ll = long long ; using ld = long double ; using namespace std ; const int mod = 1e9 + 7 ; // how interesting! int n; vector<ll> v ; ll MinMax(ll st , ll en , ll &mn , ll &mx ){ bool is = 0 ; for(auto u : v){ if( u >= st && u <= en){ mx = u ; if(!is){ mn = u ; is = 1 ; } } } if(!is){ mn = mx = -1 ; } } struct node{ ll pref = 0 , suff = 0 , summ = 0 , mxx = 0 ; I maint(){ mxx = max(max(mxx , pref) , max(suff , summ)) ; } node(){ } node(ll x){ pref = suff = summ = x ; maint() ; } I merge(node &rhs){ ll npref = 0 , nsuff = 0 , nsumm = 0 ; if(summ){ npref = summ + rhs.pref ; } else npref = pref ; if(summ && rhs.summ){ nsumm = summ + rhs.summ ; } if(rhs.summ){ nsuff = rhs.summ + suff ; } else nsuff = rhs.suff ; mxx = max(mxx , suff + rhs.pref) ; pref = npref ; summ = nsumm ; suff = nsuff ; mxx = max(mxx , rhs.mxx) ; maint() ; } } ; node query(ll L , ll R){ ll mn = 0 , mx = 0 ; if(L == R){ MinMax(L , R , mn , mx) ; return node(mn == -1) ; } ll mid = (L + R) >> 1ll ; MinMax(L , R , mn , mx) ; if(mn == -1){ return node(R - L + 1) ; } if(L == R) return node(0) ; node lhs = query(L , mid) ; node rhs = query(mid+1 , R) ; lhs.merge(rhs) ; return lhs ; } long long findGap(int T, int N) { ll st = 0 , en = 1e18 ; ll mn = 0 , mx = 0 ; ll lo = 0, hi = 1e18 ; while(lo<=hi){ ll mid = (lo + hi ) >> 1ll ; MinMax(0 , mid , mx , mx) ; if(mx != -1){ st = mid ; hi = mid -1 ; } else lo = mid + 1; } lo = 0 , hi = 1e18 ; while(lo<=hi){ ll mid = (lo + hi ) >> 1ll ; MinMax(mid , 1e18 , mn , mx ) ; if(mx != -1){ en = mid ; lo = mid +1 ; } else hi = mid - 1; } node answer = query(st , en) ; return answer.mxx + 1; return 0; }

Compilation message (stderr)

gap.cpp: In function 'll MinMax(ll, ll, ll&, ll&)':
gap.cpp:39:1: warning: no return statement in function returning non-void [-Wreturn-type]
   39 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...