제출 #26531

#제출 시각아이디문제언어결과실행 시간메모리
26531TAMREFGap (APIO16_gap)C++11
30 / 100
89 ms8304 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; ll findGap(int T, int N) { ll mn=0,mx=(ll)2e18,tmn,tmx,ans=0; if(T==1){ MinMax(mn,mx,&tmn,&tmx); if(N==2) return tmx-tmn; mn=tmn,mx=tmx; for(int i=1;2*i<=N-1;i++){ MinMax(mn+1,mx-1,&tmn,&tmx); if(tmx==-1){ ans=max(ans,mx-mn); break; } //printf("%lld %lld %lld %lld\n",mn,mx,tmn,tmx); ans=max(ans,max(tmn-mn,mx-tmx)); mn=tmn,mx=tmx; } ans=max(mx-mn,ans); return ans; } else{ MinMax(mn,mx,&tmn,&tmx); if(N==2) return tmx-tmn; ll A=ceil((double)(tmx-tmn)/(N-1)); mn=tmn; vector<ll> V; for(int i=0;i<N-1;i++){ MinMax(mn+A*i+i,mn+A*(i+1)+i,&tmn,&tmx); V.push_back(tmn); V.push_back(tmx); } ll G=0; for(int u=1;u<=(int)V.size()>>1;u++) G=max(G,V[u*2]-V[u*2-1]); return G; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...