Submission #145634

#TimeUsernameProblemLanguageResultExecution timeMemory
145634karmaGap (APIO16_gap)C++11
100 / 100
77 ms4460 KiB
#include<bits/stdc++.h>
#include "gap.h"
#define ll   long long

using namespace std;

const ll oo = (ll)1e18;

ll findGap(int T, int N)
{
   ll Min, Max, preMin, preMax, res = 0;
   MinMax(0, oo, &Min, &Max);
   vector<ll> v; v.clear();
   if(T == 1) {
     int i = 1, j = N - 2;
     v.emplace_back(Min), v.emplace_back(Max);
     while(i <= j) {
         preMin = Min, preMax = Max;
         MinMax(preMin + 1, preMax - 1, &Min, &Max);
         if(Min != -1) v.emplace_back(Min), v.emplace_back(Max);
         ++i, --j;
     }
   } else {
     preMin = Min, preMax = Max;
     res = (Max - Min + N - 2) / (N - 1); ll dis = res + 1;
     v.emplace_back(Min), v.emplace_back(Max);
     for(ll pos = preMin + 1; pos < preMax; pos += dis) {
        MinMax(pos, pos + res, &Min, &Max);
        if(Min != -1) v.emplace_back(Min), v.emplace_back(Max);
     }
   }
   sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());
   for(int i = 1; i < int(v.size()); ++i) res = max(res, v[i] - v[i - 1]);
   return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...