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
...