CSES - HIIT Open 2016 - Results
Submission details
Task:Approximate
Sender:Team Purkka
Submission time:2016-05-28 11:41:15 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.31 sdetails

Code

#include <bits/stdc++.h>
#define ll long long
#define ld long double
using namespace std;
int main () {
int n, q;
cin>>n>>q;
ld v[n];
ld s[n];
for (int i = 0; i < n; i++) cin>>v[i], s[i] = v[i] * v[i];
for (int i = 1; i < n; i++) v[i] += v[i - 1], s[i] += s[i - 1];
for (int i = 0; i < q; i++) {
int a, b;
cin>>a>>b;
a--;
b--;
ld avg = v[b];
if (a != 0) avg -= v[a - 1];
ld sum = avg;
avg /= b - a + 1;
ld ssum = s[b];
if (a != 0) ssum -= s[a - 1];
cout<<setprecision(6)<<fixed<<(ssum - 2 * avg * sum + (b - a + 1) * avg * avg) / (b - a + 1)<<endl;
}
}

Test details

Test 1

Verdict: ACCEPTED

input
100000 100000
62 64 35 47 57 38 52 4 56 13 7...

correct output
831.753342
833.361649
833.847478
834.425131
831.468120
...

user output
831.753342
833.361649
833.847478
834.425131
831.468120
...