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...