在线排序
小 A 想要生成一个数列!目前他已有 n 个整数
$a1~an,他希望再添加m 个数到数列中,他会按照下面的方式一个一个地添加:先找到当前所有整数的中位数mid,然后添加 (mid×mid)%P到数列中。
P 为一个已知的整数,
最终小 A 会得到一个长度为 n+m 的数列,如果输出这么大的数列太费时间了,因此他希望你告诉他所有数之和对 P 取余后的值。
输入格式
第一行为空格隔开的两个整数 n,m,p
接下来一行 n 个整数,即 a1~an;
输出格式
一行一个整数,为”最终 n+m 个数之和”对 P 取余后的结果。
输入数据 1
4 4 998244353
1 2 3 4
输出数据 1
48
样例 1 解释
1 2 3 4 中位数为 2,新添加的数为 4
1 2 3 4 4 中位数为 3,新添加的数为 9
1 2 3 4 4 9 中位数为 3,新添加的数为 9
1 2 3 4 4 9 9 中位数为 4,新添加的数为 16
最终序列为:1 2 3 4 4 9 9 16,1 +2+ 3+ 4+ 4+ 9+ 9+ 16=48
所以输出
48%998244353=48
shu据规模与约定
对于所有数据,保证
P=998244353,1<=ai<=10^6$