Submission #612260

#TimeUsernameProblemLanguageResultExecution timeMemory
612260balbitSeesaw (JOI22_seesaw)C++14
0 / 100
1 ms328 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int, int> #define f first #define s second #define REP(i,n) for (int i = 0; i<n; ++i) #define REP1(i,n) for(int i = 1; i<=n; ++i) #define MX(a,b) a = max(a,b) #define MN(a,b) a = min(a,b) #define pb push_back #define SZ(x) (int)((x).size()) #define ALL(x) (x).begin(),(x).end() #ifdef BALBIT #define bug(...) cerr<<"#"<<__LINE__<<" "<<#__VA_ARGS__<<"- ", _do(__VA_ARGS__) template<typename T> void _do(T && x) {cerr<<x<<endl;} template<typename T, typename ...S> void _do(T && x, S && ...y) {cerr<<x<<", "; _do(y...);} #else #define bug(...) #define endl '\n' #endif const ll inf = 0x3f3f3f3f3f3f3f3f; const int maxn = 2e5+5; int a[maxn], ps[maxn]; vector<ll> yoi; signed main(){ ios::sync_with_stdio(0), cin.tie(0); bug(1,2); int n; cin>>n; REP1(i,n) { cin>>a[i]; ps[i] = ps[i-1] + a[i]; } vector<pair<double, double> > po; double rbound = -1; REP1(len,n) { for(int i = 1; i+len-1 <= n; ++i) { double me = (ps[i+len-1] - ps[i-1])/(double)len; if(i == 1) MX(rbound, me); double nxt = (i+len-1<n)?(ps[i+len] - ps[i])/(double)len : inf; po.pb({me, nxt}); } } sort(ALL(po)); double re = inf; for(auto yo : po) { MN(re,rbound - yo.f); MX(rbound, yo.s); if(rbound >= inf -1) break; } cout<<fixed<<setprecision(12)<<re<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...