#203. 小 Q 的数列

传统 1000 ms 256 MiB
标准 IO
文本比较 qlspirittan 标签

题目描述

小 Q 在帮他的同学 JSZKC 验题。

题目大意如下:有一个长度为 nn 的数列,数列共有 nm+1n-m+1 个长度为 mm 的连续子序列,要求出所有连续子序列的最大值的和。

小 Q 觉得这道题太水了,他决定出一道更难的题目:

以如下规则生成一个长度为 nn 的伪随机数列:A1=6563116,Ai+1=Ai×Ai mod 32745673A_1 = 6563116 , A_{i+1} = A_i \times A_i\ mod\ 32745673

可见,Ai{A_i} 的最初五项是 6563116,14723431,19804172,20943262,215468756563116, 14723431, 19804172, 20943262, 21546875

定义 M(i,j)M(i, j)Ai,Ai+1,Ai+2,,AjA_i, A_{i+1}, A_{i+2}, \ldots, A_jji+1j-i+1 个数的中位数。

F(n,m)=i=1nm+1M(i,i+m1)F(n, m) = \sum_{i=1}^{n-m+1} M(i, i + m - 1)

小 Q 希望你对于输入的 nnmm 求出 F(n,m)F(n, m)

输入格式

第一行两个整数 n(2n106)n(2 \leq n \leq 10^6)m(2mmin{105, n}2m)m(2\leq m \leq min\{10^5,\ n\},2|m),表示数列长度和连续子序列的长度。

输出格式

共一行,输出一个数 F(n,m)F(n, m)

样例

样例输入

5 2

样例输出

69525860.5