Submission #1273515

#TimeUsernameProblemLanguageResultExecution timeMemory
1273515lamlamlamGap (APIO16_gap)C++20
30 / 100
86 ms6820 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,t2; MinMax(0,1e18,&l,&r); ll dist = r-l, mn_dist = dist/(n-1); if(dist%(n-1)) mn_dist++; ll cur = l; while(cur<r){ // cerr << "CURR: " << cur << endl; MinMax(cur+1,cur+mn_dist,&mn,&mx); if(mx!=-1) cur = mx; else{ t1 = cur; break; } } cur = r; while(cur>l){ // cerr << "CURL: " << cur << endl; MinMax(cur-mn_dist,cur-1,&mn,&mx); if(mn!=-1) cur = mn; else{ t2 = cur; break; } } // cerr << t1 << ' ' << t2 << endl; return t2-t1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...