Submission #1148606

#TimeUsernameProblemLanguageResultExecution timeMemory
1148606dostsGap (APIO16_gap)C++20
83.51 / 100
44 ms1964 KiB
#include "gap.h" #include <bits/stdc++.h> #pragma GCC target("avx2") #pragma GCC optimize("O3,unroll-loops") using namespace std; #define int long long #define pii pair<int,int> #define ff first #define ss second #define sp << " " << #define all(cont) cont.begin(),cont.end() #define vi vector<int> const int inf = 1e18,MOD = 998244353,B = 250; int findGap(int32_t T, int32_t N) { int ans = 0; int l,r; int* lp = &l,*rp = &r; int u = 0,v = inf; MinMax(u,v,lp,rp); int son = *rp,bas = *lp; if (T == 2) { int L = son-bas; int x = (L-1)/(N-1)+1; int sonlst = -1; for (int i = bas;i<=son;i+=x) { MinMax(i,i+x-1,lp,rp); if (sonlst != -1 && *lp != -1) ans = max(ans,*lp-sonlst); if (*rp != -1) sonlst = *rp; } return ans; } else { vi arr(N); int ptr = 0,ptr2 = N-1; arr[ptr++] = *lp; arr[ptr2--] = *rp; while (ptr <= ptr2) { MinMax(arr[ptr-1]+1,arr[ptr2+1]-1,lp,rp); arr[ptr++] = *lp; arr[ptr2--] = *rp; } for (int i=0;i<N-1;i++) ans = max(ans,arr[i+1]-arr[i]); return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...