Submission #609506

#TimeUsernameProblemLanguageResultExecution timeMemory
609506sword060Gap (APIO16_gap)C++17
42.89 / 100
63 ms2252 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
vector<long long>a;
void rec(long long l,long long r){
  if(l>r)return;
  long long c,v;
  MinMax(l,r,&c,&v);
  if(c==-1)return;
  a.push_back(c);a.push_back(v);
  if(c==v||c==v-1)return;
  rec(c+1,(c+v)/2);rec((c+v)/2+1,v-1);
}
long long findGap(int q,int x){
  if(q==2)rec(0,1e18);
  else{
    long long c=0,v=1e18,zz=x;
    while(zz&&c<=v){
      long long l,r;
      MinMax(c,v,&l,&r);
      if(l==-1)break;
      a.push_back(l);if(l!=r)a.push_back(r);
      c=l+1;v=r-1;zz-=2;
    }
  }
  sort(a.begin(),a.end());
  long long ret=0;
  for(int i=0;i<(int)a.size()-1;i++)ret=max(ret,a[i+1]-a[i]);
  return ret;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...