제출 #1306981

#제출 시각아이디문제언어결과실행 시간메모리
1306981namhhGap (APIO16_gap)C++20
30 / 100
40 ms3240 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; #define ll long long #define pii pair<int,int> #define fi first #define se second const int N = 1e5+5; ll a[N]; int findGap(int T, int N){ if(T == 1){ ll mn,mx; MinMax(1,1e18,&mn,&mx); a[1] = mn; a[N] = mx; for(int i = 2; i <= (N+1)/2; i++){ ll mnn,mxx; MinMax(a[i-1]+1,a[N-i+2]-1,&mnn,&mxx); a[i] = mnn; a[N-i+1] = mxx; } ll ans = 0; for(int i = 2; i <= N; i++) ans = max(ans,a[i]-a[i-1]); return ans; } else{ ll mn,mx; MinMax(1,1e18,&mn,&mx); a[1] = mn; a[N] = mx; ll gap = (mx-mn+N-2)/(N-1); ll ans = gap; ll cur = a[1]; ll sta = a[1]+1; while(true){ ll mnn,mxx; ll l = sta; ll r = min(l+gap,a[N]); MinMax(l,r,&mnn,&mxx); if(mnn != mxx){ ans = max(ans,mnn-cur); cur = mxx; sta = mxx+1; } else{ if(mnn != -1){ ans = max(ans,mnn-cur); cur = mnn; sta = mnn+1; } else sta += gap; } if(r == a[N]) break; } return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...