Submission #1257960

#TimeUsernameProblemLanguageResultExecution timeMemory
1257960xardkodychGap (APIO16_gap)C++20
5.40 / 100
153 ms1228 KiB
// #pragma optimize("Ofast") #include "bits/stdc++.h" #define int long long #define all(v) (v).begin(), (v).end() #define pb push_back #define em emplace_back #define mp make_pair #define F first #define S second using namespace std; template<class C> using vec = vector<C>; using vi = vector<int>; using vpi = vector<pair<int, int> >; using pii = pair<int, int>; void MinMax(long long s, long long t, long long *mn, long long *mx); const int INF = 1e18; mt19937_64 rnd(chrono::steady_clock::now().time_since_epoch().count()); class solver { public: int Rand(int l, int r) { return l + rnd() % (r - l + 1); } pii query(int a, int b) { if (a > b) return {-1, -1}; int u, v; MinMax(a, b, &u, &v); return {u, v}; } int answer; int f(int l, int r) { if (l > r) return 0; if (auto [u,v]=query(l,r); u == v || u == -1) return 0; int mid = Rand(l, r); int res = 0; res = max(res, f(l, mid)); res = max(res, f(mid+1, r)); int left = query(l, mid).S; int right = query(mid+1, r).F; if (left != -1 && right != -1) { res = max(res, right - left); } return res; } solver(int t, int n) { answer = f(0, INF); } }; int findGap(int32_t t, int32_t n) { solver sol(t, n); return sol.answer; } #undef int
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...