Submission #768200

#TimeUsernameProblemLanguageResultExecution timeMemory
768200raysh07Gap (APIO16_gap)C++17
100 / 100
37 ms2252 KiB
#include "gap.h" #include <bits/stdc++.h> using namespace std; long long findGap(int t, int n) { long long mx, mn; MinMax(1, (long long)1e18, &mn, &mx); if (t == 1){ vector <long long> a; a.push_back(mn); a.push_back(mx); while ((int)a.size() < n){ MinMax(mn + 1, mx - 1, &mn, &mx); a.push_back(mn); if (mn != mx) a.push_back(mx); } sort(a.begin(), a.end()); long long ans = 0; for (int i = 1; i < n; i++) ans = max(ans, a[i] - a[i - 1]); return ans; } long long ans = (mx - mn + n - 1) / n; long long last = mn; //go from s to t, but make jumps of size ans long long curr = mn + 1; while (curr <= mx){ //query [curr, curr + ans] long long mi, ma; MinMax(curr, curr + ans, &mi, &ma); curr += ans; if (mi == -1){ continue; } ans = max(mi - last, ans); last = ma; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...