Submission #106647

#TimeUsernameProblemLanguageResultExecution timeMemory
106647usernameGap (APIO16_gap)C++14
70 / 100
80 ms1272 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; #define VIS(it,con) for(auto it=con.begin();it!=con.end();++it) #define MIN(x,y) (x=min(x,(y))) #define MAX(x,y) (x=max(x,(y))) #define REP(i,j,k) for(register int i=(j);i<(k);++i) #define RREP(i,j,k) for(register int i=(j)-1;i>=(k);--i) #define ALL(a) a.begin(),a.end() #define MST(a,v) memset(a,(v),sizeof a) #define pb push_back typedef long long ll; ll findGap(int t,int n){ ll mn,mx,res=0; if(t==1){ return 0; // vector<ll>num; ll lb=0,rb=1e18; REP(i,0,(n+1)/2){ MinMax(lb,rb,&mn,&mx); num.pb(mn); if(n%2==0||i+1<(n+1)/2)num.pb(mx); lb=mn+1,rb=mx-1; } sort(ALL(num)); REP(i,1,n)MAX(res,num[i]-num[i-1]); }else{ MinMax(0,1e18,&mn,&mx); ll d=res=(mx-mn+n-2)/(n-1); ll MX=mx,lb=mn,last=mn; REP(i,0,n-1){ MinMax(lb,lb+d-1,&mn,&mx); if(mn>=0){ MAX(res,mn-last); last=mx; } lb+=d; } MAX(res,MX-last); } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...