제출 #745419

#제출 시각아이디문제언어결과실행 시간메모리
745419AirCirclesGap (APIO16_gap)C++17
78.54 / 100
57 ms1864 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; //void MinMax(s,t,&mn,&mx) long long findGap(int TT, int n){ if(TT==1){ //long long s,t,&mn,&mx; vector<long long>dn(n); MinMax(0,1000000000000000000LL,&dn[0],&dn[n-1]); for(int i=1;i<n/2;i++){ MinMax(dn[i-1]+1,dn[n-i]-1,&dn[i],&dn[n-i-1]); } if(n%2==1){ MinMax(dn[n/2-1]+1,dn[n/2+1]-1,&dn[n/2],&dn[n/2]); } long long mn=0LL; for(int i=0;i<n-1;i++){ mn=max(mn,dn[i+1]-dn[i]); } return mn; }else{ long long a,b; MinMax(0,1000000000000000000LL,&a,&b); long long d=(b-a-1)/(n-1); long long x=(b-a-1)-d*(n-1); long long y=n-1-x; long long ma=0,xx=a,p=a+1;//pointer for(int i=0;i<n-1;i++){ long long mn,mx; if(i<y){ MinMax(p,p+d,&mn,&mx); p+=d; }else{ MinMax(p,p+d+1,&mn,&mx); p+=d+1; } if(mn!=-1){ ma=max(ma,mn-xx); xx=mx; } } ma=max(ma,b-xx); return ma; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...