제출 #578765

#제출 시각아이디문제언어결과실행 시간메모리
578765MohamedAhmed04Gap (APIO16_gap)C++14
100 / 100
70 ms3168 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std ; long long solve1(int N) { long long L = 1 , R = 1e18 ; vector<long long>v ; while(N > 0) { long long x , y ; MinMax(L , R , &x , &y) ; if(x == -1) break ; N -= 2 ; v.push_back(x) , v.push_back(y) ; L = x+1 , R = y-1 ; } sort(v.begin() , v.end()) ; long long ans = 0 ; int sz = v.size() ; for(int i = 1 ; i < sz ; ++i) ans = max(ans , v[i] - v[i-1]) ; return ans ; } long long solve2(int N) { long long L , R ; MinMax(1 , 1e18 , &L , &R) ; long long sz = (R-L+1 + N-1) / N ; vector<long long>v ; v.push_back(L) ; for(long long i = L ; i < R ; i += sz) { long long l = max(i , L+1) , r = min(i+sz-1 , R-1) ; if(l > r) continue ; long long x , y ; MinMax(l , r , &x , &y) ; if(x != -1 && y != -1) v.push_back(x) , v.push_back(y) ; } v.push_back(R) ; sz = v.size() ; long long ans = 0 ; for(int i = 1 ; i < sz ; ++i) ans = max(ans , v[i] - v[i-1]) ; return ans ; } long long findGap(int T, int N) { if(T == 1) return solve1(N) ; else return solve2(N) ; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...