제출 #1199238

#제출 시각아이디문제언어결과실행 시간메모리
1199238vneduGap (APIO16_gap)C++17
100 / 100
42 ms2320 KiB
#include "gap.h" #include<bits/stdc++.h> using namespace std; long long mn,mx; vector<long long> v; long long findGap(int T, int n) { if(T==1) { MinMax(-1e18,1e18,&mn,&mx); v.push_back(mn); v.push_back(mx); long long l=mn,r=mx; ++l,--r; int cnt=2; while(1) { if(cnt==n) break; long long nl,nr; MinMax(l,r,&nl,&nr); if(nl==-1) break; v.push_back(nl),++cnt; if(nr!=nl) v.push_back(nr),++cnt; l=nl+1; r=nr-1; if(l>r) break; } sort(v.begin(),v.end()); long long ans=0; for(int i=1;i<n;++i) ans=max(ans,v[i]-v[i-1]); return ans; } else { MinMax(-1e18,1e18,&mn,&mx); long long a1=mn,an=mx,l=an-a1,x=(l+n-1)/(n-1),lst=a1,ans=0,st=a1+1; while(st<=an) { MinMax(st,st+x-1,&mn,&mx); if(mn!=-1) { ans=max(ans,mn-lst); lst=mx; } st+=x; } return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...