参考:
人生第一次交互题...不是很难但是思维和传统题差别挺大的(以及并不会本地测试= =),详见参考blog和代码吧#include"gap.h"#include#include using namespace std;const long long inf=1e18;long long findGap(int T,int N){ long long ans=0; if(T==1) { long long mn1,mx1; MinMax(0,inf,&mn1,&mx1); int tmp=N-2; if(tmp==0) ans=mx1-mn1; while(tmp>0) { long long mn,mx; if(mn1+1<=mx1-1) MinMax(mn1+1,mx1-1,&mn,&mx); else break; ans=max(ans,max(mn-mn1,mx1-mx)); if(tmp==2) ans=max(ans,mx-mn); if(mn==mx) tmp--; else tmp-=2; mn1=mn,mx1=mx; } } else { long long l,r; MinMax(0,inf,&l,&r); if(N==2||N==1) return r-l; long long len=(r-l-1)/(N-2)+1,la=l,s=l+1,t; for(int i=1;i<=N-2;i++) { t=min(s+len-1,r-1); if(s>t) break; long long mn,mx; MinMax(s,t,&mn,&mx); if(mn!=-1) { ans=max(ans,mn-la); la=mx; } s=t+1; } ans=max(ans,r-la); } return ans;}