Submission #1127008

#TimeUsernameProblemLanguageResultExecution timeMemory
1127008gawr_guraSeesaw (JOI22_seesaw)C++20
0 / 100
9 ms392 KiB
#include <bits/stdc++.h> using namespace std; const int N = 200'000 + 10; int n; int a[N]; namespace sub1 { bool checkCondition() { return n <= 20; } int pref[N]; long double answer; void recursion(int l, int r, long double mi, long double ma) { if (l == r) { answer = min(answer, ma - mi); return; } { // left long double nMid = (long double) (pref[r] - pref[l]) / (r - l); recursion(l + 1, r, min(mi, nMid), max(ma, nMid)); } { // right long double nMid = (long double) (pref[r - 1] - pref[l - 1]) / (r - l); recursion(l, r - 1, min(mi, nMid), max(ma, nMid)); } } void solve() { for (int i = 1; i <= n; ++i) pref[i] = pref[i - 1] + a[i]; long double mid = (long double) pref[n] / n; answer = 1e9; recursion(1, n, mid, mid); cout << setprecision(10) << fixed << answer << "\n"; } } int32_t main() { cin.tie(0)->sync_with_stdio(0); cin >> n; for (int i = 1; i <= n; ++i) cin >> a[i]; if (sub1::checkCondition()) { sub1::solve(); return 0; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...