Submission #810577

#TimeUsernameProblemLanguageResultExecution timeMemory
810577caganyanmazSeesaw (JOI22_seesaw)C++17
34 / 100
2060 ms37176 KiB
#include <bits/stdc++.h> #define pb push_back #define int int64_t using namespace std; constexpr static int INF = 3e14; constexpr static double EPSILON = 0.000000000001; constexpr static int MXSIZE = 5001; int v[MXSIZE]; vector<double> vv[MXSIZE]; vector<double> all; int32_t main() { int n; cin >> n; for (int i = 0; i < n; i++) cin >> v[i]; for (int l = 0; l < n; l++) { int sum = 0; for (int r = l+1; r <= n; r++) { sum += v[r-1]; vv[r-l].pb(static_cast<double>(sum) / (r-l)); all.pb(vv[r-l].back()); } } for (int i = 0; i <= n; i++) sort(vv[i].begin(), vv[i].end()); double best = INF; for (double d : all) { double left = INF, right = 0; for (int i = 1; i <= n; i++) { auto it = lower_bound(vv[i].begin(), vv[i].end(), d); if (it == vv[i].end()) { left = 0, right = INF; break; } left = min(left, *it); right = max(right, *it); } best = min(best, right - left); } cout << fixed; cout << setprecision(100); cout << best << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...