Submission #1241670

#TimeUsernameProblemLanguageResultExecution timeMemory
1241670thelegendary08Gap (APIO16_gap)C++17
100 / 100
44 ms1864 KiB
#include "gap.h" #include<bits/stdc++.h> using namespace std; long long findGap(int T, int N) { if(T == 1){ long long L = -1; long long R = 1000000000000000005; long long mn, mx; vector<long long>v(N); int l = 0; int r = N-1; while(l <= r){ // cout<<L+1<<' '<<R-1<<'\n'; MinMax(L+1, R-1, &mn, &mx); L = mn; R = mx; // cout<<L<<' '<<R<<'\n'; if(L == R){ v[l] = L; } else{ v[l] = mn; v[r] = mx; } l++; r--; } // for(auto u : v)cout<<u<<' '; // cout<<'\n'; long long ans = 0; for(int i = 0; i<N-1; i++){ if(ans < v[i+1] - v[i])ans = v[i+1] - v[i]; } return ans; } else{ long long mn, mx; long long L = -1; long long R = 1000000000000000005; MinMax(L+1, R-1, &mn, &mx); long long lb = (mx - mn + N - 2) / (N-1); long long pv = -1; long long r1, r2; long long ans = lb; for(long long i = mn; i <= mx; i+=lb + 1){ MinMax(i, i + lb, &r1, &r2); if(r1 != -1){ if(pv != -1){ // cout<<pv<<'\n'; ans = max(ans, r1 - pv); } pv = r2; } } return ans; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...