Submission #1273560

#TimeUsernameProblemLanguageResultExecution timeMemory
1273560lamlamlamGap (APIO16_gap)C++20
100 / 100
42 ms6704 KiB
#include "gap.h" #define ll long long #include <bits/stdc++.h> using namespace std; int n; vector<ll> a; void sol(ll l,ll r){ if(l>r or a.size()==n) return; ll mx,mn; MinMax(l,r,&mn,&mx); if(mx==-1) return; a.push_back(mn); if(mx==mn) return; a.push_back(mx); l = mn+1; r = mx-1; if(l>r or a.size()==n) return; sol(l,r); } long long findGap(int subtask_num, int N){ n = N; if(subtask_num==1){ sol(0,1e18); sort(a.begin(),a.end()); ll ans = 0; for(int i=0; i<a.size()-1; i++) ans = max(ans,a[i+1]-a[i]); return ans; } ll l,r,mn,mx, t1=-1,t2=-1; MinMax(0,1e18,&l,&r); ll dist = r-l, mn_dist = dist/(n-1); a.push_back(l); a.push_back(r); ll cur = l; // cerr << dist << ' ' << mn_dist << endl; while(cur<r){ // cerr << "CURR: " << cur << endl; MinMax(cur+1,cur+mn_dist+1,&mn,&mx); if(mx!=-1){ a.push_back(mn); if(mn!=mx) a.push_back(mx); } cur += mn_dist+1; } sort(a.begin(),a.end()); ll ans = 0; for(int i=0; i<a.size()-1; i++) ans = max(ans,a[i+1]-a[i]); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...