Submission #609486

#TimeUsernameProblemLanguageResultExecution timeMemory
609486sword060Gap (APIO16_gap)C++17
30 / 100
54 ms2284 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
vector<long long>a;
long long lol;
void rec(long long l,long long r){
  if(l>r||!lol)return;
  long long c,v;
  MinMax(l,r,&c,&v);
  if(c==-1)return;
  a.push_back(c);a.push_back(v);lol-=1+(c!=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){
  lol=x;
  if(q==3)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...