Submission #1209898

#TimeUsernameProblemLanguageResultExecution timeMemory
1209898basaSeesaw (JOI22_seesaw)C++20
0 / 100
1 ms524 KiB
#include "bits/stdc++.h" #include <iomanip> using namespace std; #define int long long #define ld long double signed main() { cin.tie(0) -> sync_with_stdio(0); int n; cin >> n; ld ldn = n; ld a[n]; for(int i = 0; i < n; i++) cin >> a[i]; ld sum = 0; for(int i = 0; i < n; i++) sum += a[i]; int lm = 0, rm = n - 1; ld l = sum / ldn, r = sum / ldn; int cur = l; if(l > r) swap(l, r); ldn--; for(int i = 0; i < n - 1; i++){ ld curl = (sum - a[lm]) / ldn, curr = (sum - a[rm]) / ldn; if(abs(cur - a[lm]) < abs(cur - a[rm])){ if(curl <= r){ cur = curl; sum -= a[lm]; lm++; } else{ l = min(l, curr); cur = curr; sum -= a[rm]; rm--; } } else{ if(curr >= l){ cur = curr; sum -= a[rm]; rm--; } else{ r = max(r, curl); cur = curl; sum -= a[lm]; lm++; } } ldn--; } cout << fixed << setprecision(10) << r - l << '\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...