- Time limit: 1.00 s
- Memory limit: 256 MB
You are given a sequence $x_1,x_2,\ldots,x_n$ and $q$ queries. For each query, your task is to approximate a consecutive subsequence of $x$ using a constant sequence so that the error is as small as possible.
Input
The first input line contains two integers $n$ and $q$: the length of the sequence and the number of queries.
The second input line contains $n$ integers $x_1,x_2,\ldots,x_n$ that describe the sequence.
Finally, the input contains $q$ lines that describe the queries. Each line contains two integers $a$ and $b$ ($1 \le a \le b \le n$) that correspond to the subsequence $x_a,x_{a+1},\ldots,x_b$.
Output
For each query, output the smallest possible error (rounded to exactly 6 decimal digits) when the subsequence is approximated using a constant sequence.
Constraints
- $1 \le n,q \le 10^5$
- $1 \le x_i \le 100$
Input:
8 3
1 2 3 3 3 3 3 1
2 3
4 6
1 8
Output:
0.250000
0.000000
0.734375
Explanation: The first query is $a = 2$ and $b = 3$ which refers to the subsequence $(x_2, x_3) = (2,3)$. The best constant approximation of this sequence is $(2.5, 2.5)$, and the error of this approximation is $(0.5^2 + 0.5^2)/2 = 0.25$.