제출 #554254

#제출 시각아이디문제언어결과실행 시간메모리
554254GurbanGap (APIO16_gap)C++17
100 / 100
52 ms2324 KiB
#include "bits/stdc++.h" #include "gap.h" using namespace std; using ll = long long; long long findGap(int T, int N) { ll cep,sag; MinMax(1,(ll)1e18,&cep,&sag); if(T == 1){ vector<ll>v; v.push_back(cep); v.push_back(sag); while(cep < sag - 1 and (int)v.size() < N){ ll cp,sg; MinMax(cep+1,sag-1,&cp,&sg); if(cp != -1){ v.push_back(cp); if(cp == sg) break; v.push_back(sg); cep = cp; sag = sg; } } sort(v.begin(),v.end()); ll ans = 0; for(int i = 1;i < (int)v.size();i++) ans = max(ans,v[i] - v[i - 1]); return ans; } ll sz = (sag - cep + N - 2) / (N - 1); ll ans = sz,lst = cep; ll cp,sg,nw = cep; for(ll i = cep;i + sz < sag;i += sz + 1){ MinMax(i,i + sz,&cp,&sg); if(cp != -1){ ans = max(ans,cp - lst); lst = sg; } nw = i + sz + 1; } MinMax(nw,sag,&cp,&sg); if(cp != -1) ans = max(ans,cp - lst); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...