제출 #731211

#제출 시각아이디문제언어결과실행 시간메모리
731211hngwlogGap (APIO16_gap)C++14
30 / 100
3069 ms9364 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; long long findGap(int t, int n) { vector<long long> a(n + 1); if (t == 1) { long long mi = - 1, ma = (long long)1e18 + 1; int l = 1; int r = n; while (l <= r) { MinMax(mi + 1, ma - 1, &mi, &ma); a[l] = mi, a[r] = ma; l++, r--; } long long ans = 0; for (int i = 2; i <= n; i++) ans = max(ans, a[i] - a[i - 1]); return ans; } long long ans = 0; long long mi = - 1, ma = (long long)1e18 + 1; MinMax(mi + 1, ma - 1, &mi, &ma); long long start = mi; long long maxx = ma; long long res = (ma - mi) / (n - 1); while (mi != maxx) { int cnt = 1; long long cur_mi = mi; long long fp = ((mi - start) / res + ((mi - start) % res ? 1 : 0)) * res + start + 1; cerr << "BEFORE: " << fp << " " << fp + res - 1 << '\n'; MinMax(fp, fp + res, &mi, &ma); cerr << mi << ' ' << ma << '\n' << '\n'; while (mi == - 1) { cerr << "BEFORE: " << fp << " " << fp + res * (cnt + 1) << '\n'; MinMax(fp, fp + res * (++cnt), &mi, &ma); cerr << mi << ' ' << ma << '\n' << '\n'; } ans = max(ans, mi - cur_mi); mi = ma; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...