Code Submission Evaluation System Login

CSES - HIIT Open 2016

HIIT Open 2016

Contest start:2016-05-28 11:00:00
Contest end:2016-05-28 16:00:00

Task list | Submit code | Submissions | Messages | Scoreboard | Statistics


History
2016-05-28 11:10:36
Task:Approximate
Sender:Ace of Spades
Submission time:2016-05-28 11:10:36
Status:READY
Result:ACCEPTED

Show test data

Code

#include<bits/stdc++.h>

using namespace std;

int main(void) {
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    cout << fixed << setprecision(6);

    int64_t n, q;
    cin >> n >> q;

    vector<int64_t> s(n+1), s2(n+1);

    for(int64_t i=0;i<n;i++) {
        int64_t x;
        cin >> x;
        if(i != 0) {
            s[i] = s[i-1]+x;
            s2[i] = s2[i-1]+x*x;
        }
        else {
            s[i]=x;
            s2[i]=x*x;
        }
    }

    for(int64_t i=0;i<q;i++) {
        int64_t a,b;
        cin >> a >> b;
        a--;
        b--;
        int64_t k=b-a+1;
        int64_t mys, mys2;
        if(a > 0) {
            mys=s[b] - s[a-1];
            mys2=s2[b] - s2[a-1];
        } else {
            mys=s[b];
            mys2=s2[b];
        }
        cout << (double)1/(double)k * mys2 - (double)1/(double)(k*k) * (double) mys * (double) mys << '\n';
    }

    return 0;
}