Submission #735852

#TimeUsernameProblemLanguageResultExecution timeMemory
735852Abrar_Al_SamitGap (APIO16_gap)C++17
38.69 / 100
52 ms1876 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; long long findGap(int T, int N) { long long a[N+1]; if(T==1) { int l = 1, r = N; long long lef = 0, rit = 1e18; while(l<=r) { MinMax(lef, rit, &lef, &rit); if(l==r) { a[l] = lef; break; } else { a[l] = lef, a[r] = rit; ++lef, --rit; ++l, --r; } } long long best = 0; for(int i=2; i<=N; ++i) { best = max(best, a[i] - a[i-1]); } return best; } else { long long lef = 0; long long already = 1; bool fin = 0; bool very_first = true; long long absmn, absmx; MinMax(0, (long long)1e18, &absmn, &absmx); while(lef+already+1<=min(absmx, (long long)1e18)) { long long pw = already; bool fir = true; while(1) { long long rit = min((long long)1e18, pw+lef-1); long long var1, var2; MinMax(lef, rit, &var1, &var2); if(var1==-1) { // if(rit==1e18) { // fin = true; // break; // } pw *= 2; } else { if(fir) { lef = var2 + 1; already = max(already, 1LL); } else { if(!very_first) already = var1 - lef + 1, lef = var2 + 1; else lef = var1 + 1; } break; } fir = false; } very_first = false; if(fin) break; } return already; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...