제출 #970825

#제출 시각아이디문제언어결과실행 시간메모리
970825vjudge1Gap (APIO16_gap)C++14
30 / 100
3069 ms3996 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; #define int long long mt19937_64 rng(69420); int rand(int l, int r){ return uniform_int_distribution<int>(l, r)(rng); } long long findGap(int32_t T, int32_t N) { int n=N; if (T==1){ int pl=0, pr=1e18; vector<int> a; while (N>0){ int l, r; MinMax(pl, pr, &l, &r); a.push_back(l); if (l!=r) a.push_back(r); pl=l+1; pr=r-1; N-=2; } sort(a.begin(), a.end()); int ans=0; for (int i=1; i<(int)a.size(); ++i) ans=max(ans, a[i]-a[i-1]); return ans; } int l, r; MinMax(0, 1e18, &l, &r); if (N==2) return r-l; if (r-l==2) return 1; int min_ans=(r-l)/(n-1); int ans=0; int lst=l; while (1){ int ll=l+1, rr=ll+min_ans-1; if (rr>=r) break; int tl, tr; MinMax(ll, rr, &tl, &tr); if (tr==-1) l=ll; else{ ans=max(ans, tl-lst); lst=tr; l=tr; } } return max(ans, r-lst); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...