Submission #101269

#TimeUsernameProblemLanguageResultExecution timeMemory
101269ae04071Gap (APIO16_gap)C++11
30 / 100
82 ms1272 KiB
#include "gap.h" #include <bits/stdc++.h> #define fi first #define se second #define sz(x) ((int)(x).size()) using namespace std; using lli=long long; using pll=pair<lli,lli>; const lli INF=1000000000000000000ll; lli sub1(int n) { lli mx=0, lv=-1, rv=INF+1; for(int i=0;i<(n+1)/2;i++) { lli s=lv, t=rv, l, r; MinMax(s+1, t-1, &l, &r); if(i!=0) { mx = max(mx, l-lv); mx = max(mx, rv-r); } lv = l; rv = r; } if(!(n&1)) mx = max(mx, rv-lv); return mx; } lli mx=0; int SEG = 3; pll dfs(lli lv,lli rv) { if(lv>rv) return pll(-1,-1); lli s=lv, t=rv, l,r; MinMax(s,t,&l,&r); if(l==-1) return pll(-1, -1); else if(l==r) return pll(l,l); else { lli pr = l, ps, pt; for(int i=0;i<SEG;i++) { lli s = pr+1, t=pr+1+(r-l)/SEG; if(s>=r) break; if(t>=r) t=r-1; pll tmp = dfs(s, t); if(tmp.fi!=-1) { mx = max(mx, tmp.fi-l); pr=tmp.se; } } mx = max(mx, r-pr); return pll(l, r); } } lli sub2(int n) { dfs(0, INF); return mx; } long long findGap(int T, int N) { mx=0; if(N<=10 || T==1) return sub1(N); else return sub2(N); return 0; }

Compilation message (stderr)

gap.cpp: In function 'pll dfs(lli, lli)':
gap.cpp:35:21: warning: unused variable 'ps' [-Wunused-variable]
         lli pr = l, ps, pt;
                     ^~
gap.cpp:35:25: warning: unused variable 'pt' [-Wunused-variable]
         lli pr = l, ps, pt;
                         ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...