Submission #1076760

#TimeUsernameProblemLanguageResultExecution timeMemory
1076760miguel_tpGap (APIO16_gap)C++17
0 / 100
3072 ms1976 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; vector<long long> arr; long long part1(int N) { long long mn = -1, mx = 1e18 + 2; arr.resize(N); int i = 0, j = N-1; while(i <= j) { long long a = mn+1, b = mx-1; if(a > b) break; MinMax(a, b, &mn, &mx); arr[i] = mn; arr[j] = mx; i++; j--; } long long max_diff = 0; for(int i = 0; i < N-1; i++) max_diff = max(max_diff, arr[i+1] - arr[i]); return max_diff; } int idx = 0; void aux(long long l, long long r, long long step) { long long mn = -1, mx = 1e18 + 2; int i = 1; while(l + step * i - 1 < r) { MinMax(l + step * (i-1), l + step * i - 1, &mn, &mx); if(mn != -1) { if(step == 1) { arr[idx] = mn; idx++; } else aux(l + step * (i-1), l + step * i - 1, step / 1e6); } i++; } } long long part2(int N) { arr.resize(N); aux(0, 1e18, 1e12); long long max_diff = 0; for(int i = 0; i < N-1; i++) max_diff = max(max_diff, arr[i+1] - arr[i]); return max_diff; } long long findGap(int T, int N) { if(T == 1) return part1(N); else return part2(N); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...